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.
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
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
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:
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
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
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
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 ()
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;
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
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
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.
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
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
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 ()
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