Wie richte ich eine Klasse ein, die eine Schnittstelle darstellt? Ist das nur eine abstrakte
Wie richte ich eine Klasse ein, die eine Schnittstelle darstellt? Ist das nur eine abstrakte
Mein grundlegendes Verständnis ist, dass es keine Implementierung für eine reine virtuelle Funktion gibt. Mir wurde jedoch gesagt, dass es möglicherweise eine Implementierung für eine reine virtuelle Funktion gibt. class A { public: virtual void f() = 0; }; void A::f() {
Ist es falsch zu schreiben: class A { public: virtual ~A() = 0; }; für eine abstrakte Basisklasse? Zumindest wird das in MSVC kompiliert ... Wird es zur Laufzeit
Ich verstehe die Notwendigkeit eines virtuellen Destruktors. Aber warum brauchen wir einen reinen virtuellen Destruktor? In einem der C ++ - Artikel hat der Autor erwähnt, dass wir einen reinen virtuellen Destruktor verwenden, wenn wir eine Klasse abstrakt machen möchten. Wir können eine Klasse...
Wir deklarieren eine reine virtuelle Funktion immer als: virtual void fun () = 0 ; Dh es wird immer 0 zugewiesen. Ich verstehe, dass dies dazu dient, den vtable-Eintrag für diese Funktion auf NULL zu initialisieren, und jeder andere Wert hier führt zu einem Fehler bei der Kompilierung. Ist dieses...
Manchmal stelle ich fest, dass Programme auf meinem Computer mit dem Fehler "reiner virtueller Funktionsaufruf" abstürzen. Wie kompilieren diese Programme überhaupt, wenn ein Objekt nicht aus einer abstrakten Klasse erstellt werden
Heute habe ich über reine Funktion gelesen und war verwirrt mit ihrer Verwendung: Eine Funktion gilt als rein, wenn sie denselben Wertesatz für denselben Eingangssatz zurückgibt und keine beobachtbaren Nebenwirkungen aufweist. zB strlen()ist eine reine Funktion, während rand()es eine unreine...