Kompilieren Sie die folgende KlasseWas ist eine "fast-leere" Klasse?
class Interface
{
virtual void doIt() = 0;
virtual ~Interface() = 0;
};
inline Interface::~Interface() {}
gcc -fdump-class-hierarchy
verwenden.
gcc
emittiert
Class Interface size=4 align=4 base size=4 base align=4 Interface (0x1a779c0) 0 nearly-empty vptr=((& Interface::_ZTV9Interface) + 8u)
Was ist die Bedeutung von "fast leer"? Was heißt das?
Nicht verwandt aber .. Machen Sie virtuellen Destruktor nicht als rein virtuell, wie Sie die Implementierung bereitstellen. – Naveen
Ich denke nicht, dass das ein besonders guter Rat ist. Reine virtuelle Destruktoren sind eine gebräuchliche Kurzform, um zu sagen, dass die Klasse abstrakt ist und dass sie eine Implementierung haben müssen. –
@ Naveen: Warum nicht? Jede reine virtuelle Funktion kann eine Implementierung haben. – dalle