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() { cout<<"Test"<<endl; } Ist der obige Code in Ordnung? …
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 abstürzen?
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 jedoch abstrakt machen, indem wir jedes …
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 kann?
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 ist. __attribute__ ((pure)) int fun(int i) { return i*i; } …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.