Ja, abstrakte Klassen haben vtables, auch mit reinen abstrakten Methoden (diese können tatsächlich implementiert und aufgerufen werden), und ja - ihr Konstruktor initialisiert die reinen Einträge zu a angegebenen Wert.
Kann eine abstrakte Klasse eine virtuelle Funktion haben?
Eine abstrakte Klasse enthält mindestens eine rein virtuelle Funktion. Sie deklarieren eine rein virtuelle Funktion, indem Sie bei der Deklaration einer virtuellen Elementfunktion in der Klassendeklaration einen reinen Bezeichner (=0) verwenden.
Hat jede Klasse einen virtuellen Tisch?
Die kurze Antwort lautet also nein. Der Standard gibt dies nicht vor.
Enthält die abstrakte Klasse nicht virtuelle Funktionen?
Abstrakte Klassen (abgesehen von rein virtuellen Funktionen) können Member-Variablen, nicht-virtuelle Funktionen, reguläre virtuelle Funktionen, statische Funktionen usw. haben. Objekte abstrakter Klassen können nicht insantiiert werden.
Kann eine abstrakte Klasse ein Objekt erstellen?
Nein, wir können kein Objekt einer abstrakten Klasse erzeugen … Die Referenzvariable wird verwendet, um auf die Objekte abgeleiteter Klassen (Unterklassen der abstrakten Klasse) zu verweisen. Eine abstrakte Klasse bedeutet, dass die Implementierung versteckt und dem Benutzer die Funktionsdefinition angezeigt wird, was als abstrakte Klasse bekannt ist.