Hinweis: Hier geht es nicht darum, wie Inline-Funktionen verwendet werden oder wie sie funktionieren, sondern darum, warum sie so ausgeführt werden, wie sie sind.
Die Deklaration einer Klassenmitgliedsfunktion muss keine Funktion als definieren inline, sondern ist nur die tatsächliche Implementierung der Funktion. Zum Beispiel in der Header-Datei:
struct foo{
void bar(); // no need to define this as inline
}
Warum also die Inline - Implementierung eines Klassen funktionieren müssen , um in der Header - Datei? Warum kann ich die Inline-Funktion nicht in die .cppDatei einfügen? Wenn ich versuchen würde, die Inline-Definition in die .cppDatei einzufügen, würde ich einen Fehler in der Art von: erhalten.
error LNK2019: unresolved external symbol
"public: void __thiscall foo::bar(void)"
(?bar@foo@@QAEXXZ) referenced in function _main
1>C:\Users\Me\Documents\Visual Studio 2012\Projects\inline\Debug\inline.exe
: fatal error LNK1120: 1 unresolved externals
inlineeine Definition angezeigt wird, aber keine vorherige Erklärung, und umgekehrt . Wenn ja, kann dies helfen: stackoverflow.com/questions/4924912/…