vtable

Eine virtuelle Tabelle oder vtable ist eine Technik, die zum Implementieren polymorpher Funktionen mit dynamischem Dispatch verwendet wird
4
Antworten

Wie wird die virtuelle Tabelle los? Versiegelte Klasse

Soweit ich weiß macht die Klasse sealed in VTable nachsehen oder irre ich mich? Wenn ich eine Klasse sealed mache, bedeutet das, dass alle virtuellen Methoden in der Klassenhierarchie auch mit sealed ? gekennzeichnet sind Zum Beispiel...
28.02.2017, 10:09
2
Antworten

Wie wird die VTABLE einer C ++ Klasse über GCC angezeigt?

Ich verstehe, dass eine Klasse VTABLE hat, wenn sie mindestens eine virtuelle Funktion enthält. Ich würde gerne den Inhalt von VTABLE sehen. Gibt es eine Möglichkeit, es anzuzeigen? Gibt es speziell eine Option in gcc , um VTABLE e...
22.01.2012, 07:04
3
Antworten

Was ist Vtable in C ++ [duplizieren]

Was ist vtAble in C ++? Ich weiß, dass vtable eine virtuelle Tabelle ist, die ein Array von Zeigern zu virtuellen Funktionen enthält. Gibt es einen Artikel mit praktischer Umsetzung? (Jeder Spaziergang wird geschätzt)     
24.08.2010, 09:01
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
4
Antworten

c ++: Enthält eine vtable Zeiger auf nicht-virtuelle Funktionen?

vtable enthält Zeiger auf virtuelle Funktionen dieser Klasse. Enthält es auch Zeiger auf nicht-virtuelle Funktionen? Thx!     
30.09.2012, 12:38
1
Antwort

Was ist der Vorteil des "hand-rolled" vtable Ansatzes?

Vor kurzem bin ich auf einige Arten von Lösch-Implementierungen gestoßen, die eine "handgerollte" vtable verwenden - Adobe ASL any_regular_t ist ein Beispiel, obwohl ich es auch in Boost ASIO gesehen habe (für die Warteschlange der Komplett...
02.11.2015, 19:47
1
Antwort

Wie wird das Löschen eines Zeigers mithilfe von dynamischem Cast erkannt?

Wie hier hier gezeigt, kann man mit dynamic_cast einen gelöschten Zeiger erkennen: %Vor% die Ausgabe: %Vor% Es wird erklärt, dass das Löschen der vtable erkannt wurde. Aber ich frage mich, wie ist das möglich, da wir den freige...
09.06.2014, 02:54
2
Antworten

Wie unterdrücke ich die Generierung von C ++ - Vtable für reine virtuelle Klassen mit G ++?

Die Unterdrückung der C ++ - Vtable-Generierung kann in MSVC mit dem __declspec(novtable) -Attribut erfolgen. Es scheint jedoch, dass kein äquivalentes Attribut für die GNU C ++ - Compiler. Tatsache ist, dass das Verlassen der VTables für r...
03.12.2011, 22:17
2
Antworten

Größe der polymorphen Klasse, die virtuell abgeleitet wurde

Ich habe Schwierigkeiten, die Größe der folgenden Klassen zu untermauern, und was macht das aus? Ich benutze MSVS 2008 (VC 9.0 Compiler). Ich habe gelesen, dass, wenn ich keine virtuellen Funktionen deklariere (im folgenden Beispiel), Klasse D 2...
28.02.2014, 09:34
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