Tag: virtual-destructor

Ein virtueller Destruktor stellt sicher ein C++ – Objekt wird korrekt rufen Sie den Destruktor für die abgeleitete Klasse, wenn eine polymorphe Objekt gelöscht wird durch einen Zeiger auf seine Basisklasse.

Gibt es eine Verwendung für die Herstellung einer geschützten virtuellen Destruktor?

Anzahl der Antworten 4 Antworten
/*Child is inherited from Parent*/ class Parent { public: Parent () //Constructor { cout << "\n Parent constructor called\n" << endl; } protected: ~Parent() //Dtor { cout << "\n Parent destructor called\n" << endl; } }; class

Virtuellen Destruktor mit virtuellen Mitgliedern, die in C++11

Anzahl der Antworten 3 Antworten
In diesen Folien über C++11/14 standard, auf Folie 15 der Autor schreibt, dass "viele klassische Codierung Regeln [sind] nicht mehr anwendbar," in C++11. Er schlägt vor, eine Liste von drei Beispielen, und ich Stimme zu, die Regel

Wo sollte der rein virtuelle Destruktor deklariert werden?

Anzahl der Antworten 2 Antworten
EDIT: Scheinbar ist die Frage nicht klar genug formuliert. Das Problem, das ich habe ist, dass wenn der Destruktor ist definiert in der header Hinzugefügt wird, in mehrere .obj-Dateien, und der linker beschwert. Die eigentliche Frage ist:

C++: Erben von std::map

Anzahl der Antworten 4 Antworten
Ich will Erben von std::map, aber soweit ich weiß std::map hat keinen virtuellen Destruktor. Ist es daher möglich, den Anruf std::map's Destruktor explizit in meinem Destruktor, um die ordnungsgemäße Objekt-Zerstörung? InformationsquelleAutor Sebastian Hoffmann | 2012-05-07

Was ist diese Fehler Meldung über implizit gelöschten virtuellen Destruktoren?

Anzahl der Antworten 1 Antworten
Ich habe soeben GCC (glaube ich) 4.5.6 auf 4.6.1, unter Windows mit MinGW. Plötzlich meine NonInstantiable Basis-Klasse (von der Sie Erben mit public virtual um zu verhindern, dass der Instanziierung übergeben wird) sich weigert, zu arbeiten, mit

Keine Virtuelle Konstruktoren aber virtuellen Destruktor

Anzahl der Antworten 3 Antworten
Wenn wir nicht haben virtuelle Konstruktoren, warum dann haben wir virtuelle Destruktoren? Kann Konstruktoren auch virtuell sein? mögliche Duplikate von Warum haben wir nicht einen virtuellen Konstruktor in C++? Ich denke die Frage ist eher, warum haben

Eine fehlende vtable bedeutet in der Regel die erste nicht-inline-virtuelle member-Funktion hat keine definition

Anzahl der Antworten 1 Antworten
Ich bin ziemlich sicher, diese Frage ist duplizieren, aber mein code ist anders, hier ist mein code. Es scheitert mit "Undefined Symbol" - Fehler, nicht sicher, was fehlt. class Parent { public : virtual int func ()

Virtuelle Standard-Destruktoren in C++

Anzahl der Antworten 4 Antworten
Habe ich eine große Menge von vererbten Klassen (Kriterien), die Erben von einer Basisklasse (Kriterium). Hier ist criterion's code class criterion { public: virtual unsigned __int32 getPriorityClass() const = 0; virtual BOOL include(fileData &file) const = 0;

Klasse virtuelle Funktionen und zugänglich, nicht-virtuellen Destruktor

Anzahl der Antworten 4 Antworten
Ich habe zwei Klassen: class A { public: virtual void somefunction() = 0; }; class B : public A { public: B(); ~B(); void somefunction(); }; B::B() {} void B::somefunction() { // some code } Aber mit

Sollte jede Klasse einen virtuellen Destruktor haben?

Anzahl der Antworten 8 Antworten
Java und C# unterstützen das Konzept von Klassen kann nicht verwendet werden, die als Basis Klassen mit den final und sealed keywords. In C++ gibt es allerdings kein guter Weg, um zu verhindern, dass eine Klasse von

Wann sollten virtuelle Destruktoren verwendet werden?

Anzahl der Antworten 15 Antworten
Habe ich ein solides Verständnis der meisten OO-Theorie, aber die eine Sache, die mich verwirrt viele ist die virtuelle Destruktoren. Dachte ich, dass der Destruktor wird immer aufgerufen, egal was und für jedes Objekt in der Kette.

Warum sollte ich einen virtuellen Destruktor für eine abstrakte Klasse in C ++ deklarieren?

Anzahl der Antworten 7 Antworten
Ich weiß, es ist eine gute Praxis, um zu erklären, virtuelle Destruktoren für die Basis-Klassen in C++, aber es ist immer wichtig zu erklären virtual Destruktoren auch für abstrakte Klassen, die Funktion als Schnittstellen? Bitte geben Sie

Wann sollten Sie virtuelle Destruktoren nicht verwenden?

Anzahl der Antworten 12 Antworten
Gibt es immer einen guten Grund zu nicht deklarieren einen virtuellen Destruktor für eine Klasse? Wann sollten Sie konkret vermeiden Sie das schreiben? InformationsquelleAutor der Frage Mag Roader | 2008-11-19

Sind virtuelle Destruktoren vererbt?

Anzahl der Antworten 4 Antworten
Wenn ich eine base-Klasse mit einem virtuellen Destruktor. Hat einer abgeleiteten Klasse zu deklarieren, die einen virtuellen Destruktor zu? class base { public: virtual ~base () {} }; class derived : base { public: virtual ~derived ()

Überschreiben Sie den Bezeichner nach dem Destruktor in C ++ 11

Anzahl der Antworten 3 Antworten
Funktioniert die override-identifier nach der virtuellen Destruktor-Deklaration haben, eine Besondere Bedeutung? class Base { public: virtual ~Base() {} virtual int Method() const {} }; class Derived : public Base { public: virtual ~Derived() override {} virtual int