Sie können Klassen immer zu reinen Kopfzeilen machen, indem Sie alle Mitgliedsfunktionen inline definieren. Dies hat nichts damit zu tun, ob eine Funktion virtuell ist oder nicht. Außerdem enthält die Header-Datei fast immer bereits die Klassendefinition (es sei denn, Sie verwenden eine Forward-Deklaration).
Um die Terminologie zu klären:
Erklärung der Klasse:
class C;
Klassendefinition mit einer Mitgliedsfunktion:
class C {
void f();
};
Klassendefinition mit einer Mitgliedsfunktion, die inline definiert ist:
class C {
void f() { ... }
};
Alle drei Arten sind möglich und in verschiedenen Situationen nützlich. Bei Klassenvorlagen verwenden Sie häufig den dritten Stil, um beliebige Instanziierungen zu ermöglichen. Für gewöhnliche Klassen mit viel Code ist der zweite Stil vorherrschend, da er die Größe des Objektcodes und die Kompilierzeit reduziert.