Wird ein 'leerer' Konstruktor oder Destruktor dasselbe tun wie das generierte?

Nehmen wir an, wir haben eine (Spielzeug -) C++ - Klasse wie die folgenden:

class Foo {
    public:
        Foo();
    private:
        int t;
};

Da kein Destruktor definiert ist, einen C++ - compiler erstellen sollte, man automatisch für die Klasse Foo. Wenn der Destruktor nicht benötigen, zu bereinigen keine dynamisch zugewiesenen Speicher (das ist, könnten wir vernünftigerweise Vertrauen auf den Destruktor der compiler gibt uns), wird die Definition eines leeren Destruktor, dh.

Foo::~Foo() { }

tun die gleiche Sache wie der compiler-generierte? Was über einen leeren Konstruktor --Foo::Foo() { }?

Wenn es Unterschiede, wo gibt es Sie? Wenn nicht, ist eine Methode der anderen vorgezogen?

InformationsquelleAutor der Frage Andrew Song | 2009-06-22

Schreibe einen Kommentar