virtual-functions

In der objektorientierten Programmierung ist eine virtuelle Funktion oder virtuelle Methode eine Funktion oder Methode, deren Verhalten innerhalb einer erbenden Klasse durch eine Funktion mit derselben Signatur überschrieben werden kann. Dieses Konzept ist ein sehr wichtiger Teil des Polymorphismus-Teils der objektorientierten Programmierung (OOP).
5
Antworten

Unterschied zwischen dem Aufruf einer virtuellen Funktion und einer nicht virtuellen Funktion?

Das ist in der Tat eine Interviewfrage, ich kann die Antwort nicht herausfinden. Weiß jemand davon? Sie können über jeden Unterschied sprechen, zum Beispiel die Daten, die in den Stapel geschoben werden.     
08.01.2012, 09:18
4
Antworten

Warum werden virtuelle Funktionen zur Laufzeit behandelt?

Sicherlich ist der Compiler schlau genug, um genau zu bestimmen, welche Funktion in einigen Fällen gewünscht ist, aber warum brauchen andere Fälle Laufzeitunterstützung?     
31.12.2013, 04:08
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

C ++: Ist "Virtuell" auf alle Nachkommen vererbt

Nehmen Sie den folgenden einfachen Fall an (beachten Sie den Speicherort von virtuell ) %Vor% Würde der folgende Aufruf B::func() oder C::func() aufrufen? %Vor%     
10.04.2011, 08:49
3
Antworten

Wie überschreibt man die virtuelle Funktion in gutem Stil? [C ++]

Jungs, ich weiß, diese Frage ist sehr einfach, aber ich habe in einigen Publikationen (Websites, Bücher) verschiedene Arten von override virtuellen Funktionen getroffen. Was ich meine ist: wenn ich Basisklasse habe: %Vor% In einigen Publikat...
14.03.2010, 19:03
4
Antworten

Was ist der Vorteil dieses indirekten Funktionsaufrufs?

Ich habe den folgenden Code in einer Bibliothek gefunden: %Vor% Nun frage ich mich: Warum würdest du diese Indirektion benutzen? Könnte es Gründe geben, warum das Obige besser wäre als die einfache Alternative: %Vor%     
19.03.2009, 17:50
1
Antwort

Wie verwende ich std :: bind (), um die Version der Basisklasse einer virtuellen Funktion aufzurufen?

Ich versuche, std :: bind () zu verwenden, um eine Funktion zu erstellen, die die Basisklassenversion einer virtuellen Funktion aufruft, anstatt die Version der abgeleiteten Klasse aufzurufen. %Vor% Ich verstehe woanders dass man eine Basi...
18.01.2013, 21:40
4
Antworten

Virtuelle Tabelle / Versandtabelle

Soweit ich weiß, hat jede Klasse ihre eigene vtable. Jedoch dieser Wikipedia-Link erwähnt:    Die Versandtabelle eines Objekts wird   enthält die Adressen der Objekte   dynamisch gebundene Methoden. Methode   Anrufe werden durch Abrufen...
07.07.2011, 06:06
2
Antworten

Wie hoch sind die Kosten für den Aufruf einer virtuellen Funktion auf nicht-polymorphe Weise?

Ich habe eine reine abstrakte Basis und zwei abgeleitete Klassen: %Vor% Ist das Aufrufen von foo in Punkt A genauso teuer wie der Aufruf einer nicht virtuellen Memberfunktion? Oder ist es teurer als wenn D1 und D2 nicht von B abgeleitet w...
17.02.2013, 15:48
3
Antworten

Delegation in die Schwesterklasse

Ich ging durch das: - Ссылка Kann mir jemand erklären, wie das passiert und warum passiert das?     
24.06.2013, 16:25