vptr

Referenz für den virtuellen C ++ - Zeiger.
5
Antworten

Wann genau wird der virtuelle Tabellenzeiger (in C ++) für ein Objekt gesetzt?

Ich weiß, dass der Compiler für jede Klasse, die eine virtuelle Funktion oder eine Klasse hat, die von einer Klasse mit einer virtuellen Funktion abgeleitet ist, zwei Dinge tut. Erstens erstellt es eine virtuelle Tabelle für diese Klasse und zwe...
28.10.2011, 20:28
2
Antworten

Ändert sich der vptr während der Zerstörung?

Ich habe diesen Artikel gelesen und es heißt "Beim Eintritt in den Basisklassen-Destruktor das Objekt wird zu einem Basisklassenobjekt, und alle Teile von C ++ - virtuelle Funktionen, Dynamic_casts usw. - behandeln es auf diese Weise. " Bedeut...
27.10.2011, 13:48
4
Antworten

Warum wird ein vptr benötigt, wenn die abgeleitete Klasse die virtuelle Funktion nicht überschreibt?

%Vor% Hier unterscheidet sich die Signatur der Funktion fn, die in der Klasse base definiert ist, von der Signatur der Funktion fn() , die in der Klasse der definiert ist, obwohl der Funktionsname gleich ist. Die in der class definie...
02.02.2012, 09:11
1
Antwort

vtable: zugrunde liegender Algorithmus

Mein Verständnis von vtables ist, dass es, wenn ich eine Klasse Cat mit einer virtuellen Funktion speak () mit den Unterklassen Lion und HouseCat habe, eine vtable gibt, die speak () der korrekten Implementierung für jede Subklasse zuordnet. Als...
17.04.2017, 11:02
6
Antworten

Anzahl der virtuellen Tabellen und virtuellen Zeiger in einem C ++ - Programm

Sagen wir, wir haben unter Programm: %Vor% Meine Frage ist, wie viele vtables und wie viele vptrs erstellt werden, wenn wir dieses Programm ausführen?     
19.01.2012, 19:24