Tag: virtual-functions

In der objektorientierten Programmierung, eine virtuelle Funktion oder eine virtuelle Methode ist eine Funktion oder Methode, deren Verhalten kann überschrieben werden, in einer erbenden Klasse eine Funktion mit der gleichen Signatur. Dieses Konzept ist ein sehr wichtiger Teil des Polymorphismus-Teil der Objekt-orientierten Programmierung (OOP).

c++: überschreiben von template-member-Funktion in übergeordneten Klasse

Anzahl der Antworten 5 Antworten
Nehmen wir an, ich habe so eine Struktur der Klassen: Basisklasse Object, die in einer übergeordneten Klasse Bool, Int, Float, Bytes und Unicode Klassen. Ich hatte vor, einige Funktionen wie Bool cast_bool() const, Int cast_int() const usw.

Soll ich markieren Sie alle Methoden virtuell?

Anzahl der Antworten 7 Antworten
In Java können Sie mark-Methode als final zu machen unmöglich zu überschreiben. In C# haben, um eine Methode als virtuell zu machen möglich zu überschreiben. Heißt es, dass in C# markieren Sie alle Methoden, die virtuelle (außer

Leistung Ausdruck.Kompilieren vs Lambda, direkte vs. virtuelle Aufrufe

Anzahl der Antworten 3 Antworten
Ich bin gespannt, wie performant die Ausdruck.Kompilieren gegenüber lambda-Ausdrucks in den code und versus direkte Methode zum Einsatz, und auch die direkte Methodenaufrufe vs virtuelle Methodenaufrufe (pseudo-code): var foo = new Foo(); var iFoo = (IFoo)foo; foo.Bar();

Tut Swift dynamic dispatch und virtuelle Methoden?

Anzahl der Antworten 5 Antworten
Kommenden form einer C++/Java/C# - hintergrund, die ich erwarte, um zu sehen, die virtuelle Methoden in Swift, aber das Lesen der swift-Dokumentation sehe ich keine Erwähnung von virtuellen Methoden. Was bin ich? InformationsquelleAutor Ian Ringrose | 2014-06-03

Ein Konstruktor nicht virtual

Anzahl der Antworten 5 Antworten
In einem der C++ tutorials im internet, fand ich heraus, die nachstehende Beschreibung auf, warum ein Konstruktor nicht virtual Können wir deklarieren einen virtuellen Konstruktor. Wir sollten das genaue Art des Objektes zur Kompilierzeit, so dass der

Virtuelle Funktionen in C++ und Java

Anzahl der Antworten 3 Antworten
Habe ich gelesen, über Virtuelle Funktionen und gefunden, VF verwendet werden, in der Polymorphie der geerbten Klasse. So , wenn eine Klasse und abgeleiteten Klasse beide haben die gleiche Funktion name, VF bindet die entsprechende Funktion, um

Hat endgültig bedeuten überschreiben?

Anzahl der Antworten 5 Antworten
Wie ich es verstehe, die override Schlüsselwort besagt, dass eine bestimmte Erklärung implementiert eine Basis virtual Methode, und die Kompilierung fehlschlagen soll, wenn es keine übereinstimmende Basis-Methode gefunden. Mein Verständnis von der final keyword ist, dass es

Sollte ich virtuelle Destruktoren?

Anzahl der Antworten 1 Antworten
Ich habe eine abstrakte Klasse, die erklärt wie folgt: class my_type { public: virtual ~my_type() = default; virtual void do_something() = 0; }; Wird es als gute Praxis zu erklären, der Destruktor wie diese, mit der default

"Warnung: Kann nicht finden, linker symbol für virtuelle Tabelle für Wert XXX Wert" mit GCC und GDB (CodeBlocks)

Anzahl der Antworten 2 Antworten
Ich bin immer ein runtime error ("Speicher kann nicht geschrieben werden"), dass, nach der Kontrolle durch den debugger, führt zu der Warnung in den Titel. Header sind die folgenden: componente.h: #ifndef COMPONENTE_H #define COMPONENTE_H using namespace std;

Unterschied zwischen dem Aufruf der virtuellen Funktion und nicht-virtuelle Funktion?

Anzahl der Antworten 5 Antworten
Dies ist in der Tat eine interview-Frage, ich kann nicht herausfinden, die Antwort. Jeder kennt diese? Sie können reden, keinen Unterschied, zum Beispiel, die Daten, die push in den stack. Was genau ist Ihre Frage? Eine virtuelle

C++ - header-Datei und die Funktion Erklärung der Endung "= 0"

Anzahl der Antworten 4 Antworten
Habe ich den folgenden code innerhalb der .h-Datei und ich bin mir nicht sicher, was macht der abtretungserklärung zu tun und wie heißt es richtig? virtual void yield() = 0; Dachte ich, dass die Funktion gibt den

C++ virtuelle Funktionen Umsetzung außerhalb der Klasse

Anzahl der Antworten 4 Antworten
Ich bin neu in C++. Beim Versuch Probe Polymorphismus code, ich fand, dass Basis-Klasse virtual definition einer Funktion in der abgeleiteten Klasse ist nur möglich, wenn definiert, innerhalb der abgeleiteten Klasse oder von außerhalb mit der Deklaration

Kann eine Memberfunktion der Klasse Vorlage virtuellen werden?

Anzahl der Antworten 11 Antworten
Ich habe gehört, dass C++ - Klassen-member-Funktion-Vorlagen können nicht virtuell sein. Ist das wahr? Wenn Sie können virtuell sein, was ist ein Beispiel für ein Szenario, in dem würde man mit einer solchen Funktion? Ich Stand vor

Warum wird in diesem virtuellen Destruktor auslösen, eine nicht aufgelöste externe?

Anzahl der Antworten 7 Antworten
Folgendes: In X. h: class X { X(); virtual ~X(); }; X.cpp: #include "X.h" X::X() {} Versuchen, dieses zu bauen (ich bin mit einem .dll Ziel zu vermeiden, einen Fehler auf der main fehlt, und ich bin

C++ Polymorphismus/Vererbung Frage: Neudefinition der Basis-Funktionen vs virtuelle Funktionen

Anzahl der Antworten 8 Antworten
Ich weiß, dass abgeleitete Klassen können einfach "neu definieren" base class-member Funktionen, und dass, wenn die Funktion einer abgeleiteten Klasse ein Objekt ist genannt, die definierte Funktion in der abgeleiteten Klasse verwendet wird, aber... Nicht dieser stellt

gcc-Woverloaded-virtual-Warnungen

Anzahl der Antworten 3 Antworten
Den folgenden C++ - code, den ich denke, ist richtig, aber produzieren einige Warnungen bei der Kompilierung mit "-Woverloaded-virtual" ist die Warnung falsch oder es gibt ein echtes problem mit diesem code? Wenn, dass ist eine gefälschte

Virtuelle member-Aufruf in einem Konstruktor

Anzahl der Antworten 17 Antworten
Ich bin immer eine Warnung von ReSharper über einen Anruf zu einem virtuellen Mitglied aus meiner Objekte Konstruktor. Warum sollte dies etwas sein, das nicht zu tun? Ernsthaft.. Ihr Kommentar sollte die Antwort hier. Während Greg Erklärung

Mechanismus der Vptr und Vtable in C++

Anzahl der Antworten 3 Antworten
In C++, bei der dynamischen Bindung, betrachten Sie das folgende Beispiel... class Base { virtual void fun() { cout<<"Base"; } }; class Derived : Base { void fun() { cout<<"Derived"; } }; int main() { Base *bptr;

g++ ", denn die folgenden virtuellen Funktionen sind rein" mit der abstrakten Basis-Klasse

Anzahl der Antworten 2 Antworten
Hier ist mein Beispiel code, die den Fehler erzeugt: struct Impl { int data_size_; int find(int var){return 0;} int get(int rowid){return 0;} }; class Container { public: Container() {} virtual ~Container() {} virtual int get_size() = 0;

Zugriff auf Unterklasse-Mitglieder von einer Oberklasse-Zeiger-C++

Anzahl der Antworten 5 Antworten
Ich habe ein array mit benutzerdefinierten Klasse Student-Objekte. CourseStudent und ResearchStudent beide Erben von Studenten, und alle Instanzen von Student sind, der einen oder der anderen dieser. Habe ich eine Funktion zum Durchlaufen des Arrays ermitteln, der

Virtuelle Funktion Vererbung

Anzahl der Antworten 3 Antworten
Ich habe eine Verwirrung über die Erben der virtual-Eigenschaft von der Methode. Nehmen wir an, wir haben 4 Klassen: Klasse A, Klasse B, Klasse C und Klasse D. Die Klassen geerbt werden, auf diese Weise: Ein ->

Was ist der Unterschied zwischen einer abstrakten Funktion und eine virtuelle Funktion?

Anzahl der Antworten 25 Antworten
Was ist der Unterschied zwischen einer abstrakten Funktion und eine virtuelle Funktion? In welchen Fällen ist es empfehlenswert, Sie zu verwenden virtual oder abstract? Welches ist der beste Ansatz? Eine abstrakte Funktion, muß überschrieben werden, während eine

C++ - wie Aufruf der Methode in der abgeleiteten Klasse aus der Basisklasse

Anzahl der Antworten 2 Antworten
Was ich will zu tun ist für Execute() ausgeführt und vollendet es ruft die Base::Done() ruft dann die Derived::Done(). Ich Tue dies, weil Base Klasse Execute werde etwas tun, und wenn Ihre getan, rufen Sie die Derived::Done().

Was sind die Unterschiede zwischen überschreiben von virtuellen Funktionen und versteckt sich nicht-virtuellen Funktionen?

Anzahl der Antworten 5 Antworten
Angesichts des folgenden code-fragment, was sind die Unterschiede in der Funktion Aufrufe? Was ist die Funktion versteckt? Was ist die Funktion überschreiben? Wie Sie sich beziehen auf Funktion überschreibt? Was ist der Unterschied zwischen den beiden? Ich

Ist es überhaupt "moral" zu überschreiben, eine nicht virtuelle Funktion?

Anzahl der Antworten 7 Antworten
Habe ich die folgende C++ - Faustregel für eine lange Zeit: Wenn eine Klasse überschreibt eine Funktion in der Basis-Klasse, die Funktion sollte sein erklärt virtual in der Basis. Ich denke, ich bin gekommen, über eine Ausnahme

Mehrfache Vererbung + virtuelle Funktion Durcheinander

Anzahl der Antworten 6 Antworten
Ich habe eine diamond-Mehrfachvererbung Szenario wie dieses: A / \ B C \ / D Gemeinsamen übergeordneten Elements, A, definiert eine virtuelle Funktion fn(). Ist es möglich, beide B und C zu definieren fn()? Wenn es so

C++ Zeiger auf virtuelle Funktion

Anzahl der Antworten 3 Antworten
Wenn Sie einen struct wie diesen struct A { void func(); }; und ein Verweis wie dieser A& a; können Sie einen Zeiger auf seine func Methode wie diese: someMethod(&A::func); Nun was ist, wenn die Methode virtuell

Arduino C++ code ein: können Sie virtuelle Funktionen und Ausnahmen?

Anzahl der Antworten 6 Antworten
Folgenden bis auf dieser Kommentar von der Frage,Schreiben firmware: Montage-oder high-level?: Beim kompilieren von C++ - code für die Arduino Plattform, die Sie verwenden können, virtuelle Funktionen, Ausnahmen, etc? Oder würden Sie wollen (müssen), verwenden eine Teilmenge

Warum brauchen wir virtuelle Funktionen in C++?

Anzahl der Antworten 22 Antworten
Lerne ich C++, und ich bin gerade in der virtuellen Funktionen. Von dem, was ich gelesen habe (im Buch und online), virtuelle Funktionen sind Funktionen der Basisklasse, können Sie überschreiben in abgeleiteten Klassen. Aber früher in dem

Warum sind C# - interface-Methoden nicht als Abstrakt deklariert oder virtuell?

Anzahl der Antworten 6 Antworten
C# - Methoden in interfaces deklariert werden, ohne mit der virtual Schlüsselwort, und aufgehoben in der abgeleiteten Klasse ohne die override Stichwort. Gibt es einen Grund für dieses? Ich gehe davon aus, dass es nur eine Sprache,

Warum würde eine virtuelle Funktion private?

Anzahl der Antworten 8 Antworten
Ich habe gerade entdeckt das in einigen code: class Foo { [...] private: virtual void Bar() = 0; [...] } Macht dies irgendeinen Zweck? (Ich bin versucht zu port code von VS, um G++, und diese meine

Kann eine Klasse in C++ member-Funktion template virtuellen werden?

Anzahl der Antworten 11 Antworten
Ich habe gehört, dass C++ - Klassen-member-Funktion-Vorlagen können nicht virtuell sein. Ist das wahr? Wenn Sie können virtuell sein, was ist ein Beispiel für ein Szenario, in dem würde man mit einer solchen Funktion? InformationsquelleAutor der Frage

Vorlage oder abstrakte Basisklasse?

Anzahl der Antworten 9 Antworten
Wenn ich das machen will, eine Klasse anpassungsfähig und machen es möglich, wählen Sie verschiedene algorithmen, die von außen-was ist die beste Umsetzung in C++? Sehe ich hauptsächlich zwei Möglichkeiten: Verwenden eine abstrakte Basis-Klasse, und übergeben Sie

Warum haben wir keinen virtuellen Konstruktor in C ++?

Anzahl der Antworten 20 Antworten
Warum C++ nicht über einen virtuellen Konstruktor? InformationsquelleAutor der Frage Arjun | 2009-04-09

Was sind die reinen virtuellen Funktionen in C ++?

Anzahl der Antworten 8 Antworten
Lerne ich über C++ in einer Klasse und ich weiß nicht Recht Begriffen hat rein virtuelle Funktionen. Ich verstehe, dass Sie später bereits in einer abgeleiteten Klasse, aber warum wollen Sie es erklären, als gleich 0, wenn

Können Sie virtuelle Funktionen / Methoden in Java schreiben?

Anzahl der Antworten 6 Antworten
Ist es möglich zu schreiben virtuellen Methoden in Java, als würde man in C++? Oder, gibt es eine richtige Java-Ansatz, die Sie implementieren können, erzeugt ein ähnliches Verhalten? Könnte ich bitte einige Beispiele? InformationsquelleAutor der Frage yonatan

Kann ich die virtuelle Funktion einer Basisklasse aufrufen, wenn ich sie außer Kraft setze?

Anzahl der Antworten 7 Antworten
Sagen, ich habe Klassen Foo und Bar wie folgt eingerichtet: class Foo { public: int x; virtual void printStuff() { std::cout << x << std::endl; } }; class Bar : public Foo { public: int y; void

Wie werden virtuelle Funktionen und vtable implementiert?

Anzahl der Antworten 12 Antworten
Wir alle wissen, was virtuelle Funktionen in C++, aber wie werden Sie implementiert, auf einer tiefen Ebene? Kann den vtable geändert werden, oder sogar direkt während der Laufzeit aufgerufen? Macht die vtable besteht für alle Klassen, oder

Was passiert, wenn ich die Warnung nicht beachte? "Verbirgt das ererbte Mitglied. Damit das aktuelle Mitglied diese Implementierung überschreibt ... "

Anzahl der Antworten 4 Antworten
Dies ist vielleicht ein feiner Punkt, sondern es handelt sich um die Warnung, die der compiler Fragen, wenn Sie etwas tun, wie: class A { public virtual void F() { } } class B : A {

Korrekte Implementierung von virtuellen Funktionen in PHP?

Anzahl der Antworten 3 Antworten
an meinem Arbeitsplatz (nur php), haben wir eine Basis-Klasse für die Datenbank-Abstraktion. Wenn Sie möchten fügen Sie eine neue Datenbank Tabelle mit der Basis-Schicht, erstellen Sie eine Unterklasse von dieser Basis-Klasse und überschreiben Sie einige Methoden zu

Anwendungsfälle rein virtueller Funktionen mit Körper?

Anzahl der Antworten 7 Antworten
Ich kam vor kurzem zu wissen, dass in C++ können rein virtuelle Funktionen können Optional einen Körper haben. Was sind die real-world Anwendungsfälle für solche Funktionen? InformationsquelleAutor der Frage missingfaktor | 2010-04-09

Warum implementiert C # standardmäßig Methoden als nicht virtuell?

Anzahl der Antworten 9 Antworten
Im Gegensatz zu Java, warum C# behandeln Methoden, wie nicht-virtuelle Funktionen standardmäßig? Ist es eher ein performance-Problem eher als andere mögliche Ergebnisse? Erinnert mich an das Lesen eines Absatzes von Anders Hejlsberg über mehrere Vorteile, die mit

Methoden zum Erkennen, ob eine virtuelle C ++ - Funktion in einer abgeleiteten Klasse neu definiert wurde

Anzahl der Antworten 9 Antworten
In Kürze: Aus einer C++ Basis-Klassen-Zeiger, die Punkte auf eine Instanz von einer abgeleiteten Klasse, wie man herausfinden kann, zur Laufzeit, ob eine nicht-rein virtuelle Funktion (mit einer Implementierung in der Basisklasse) wurde neu implementiert, in der

Virtuelle Tabelle C ++

Anzahl der Antworten 4 Antworten
Lese ich eine Menge Leute schreiben "eine virtuelle Tabelle vorhanden ist, für eine Klasse, die eine virtuelle Funktion deklariert". Meine Frage ist, gibt es eine vtable ist vorhanden, nur für eine Klasse, die eine virtuelle Funktion oder

Warum sollten Sie Basisklassenzeiger für abgeleitete Klassen verwenden?

Anzahl der Antworten 4 Antworten
class base{ ..... virtual void function1(); virtual void function2(); }; class derived::public base{ int function1(); int function2(); }; int main() { derived d; base *b = &d; int k = b->function1() //Why use this instead of the

Leistungseinbußen beim Arbeiten mit Schnittstellen in C ++?

Anzahl der Antworten 16 Antworten
Gibt es einen runtime-Leistungseinbußen bei der Verwendung von interfaces (abstrakte Basis-Klassen) in C++? InformationsquelleAutor der Frage andreas buykx | 2008-09-22

Überschreiben Sie eine Elementfunktion mit einem anderen Rückgabetyp

Anzahl der Antworten 5 Antworten
Betrachten Sie das Beispiel unten: #include <iostream> using namespace std; class base { public: virtual int func() { cout << "vfunc in base class\n"; return 0; } }; class derived: public base { public: double func() {

Überschreiben von öffentlichen virtuellen Funktionen mit privaten Funktionen in C ++

Anzahl der Antworten 7 Antworten
Ist, es gibt keinen Grund, um die Berechtigungen für eine überschriebene virtuelle C++ - Funktion unterscheidet sich von der Basisklasse? Besteht irgendeine Gefahr dabei? Beispiel: class base { public: virtual int foo(double) = 0; } class child

Wann sollten Sie virtuelle Destruktoren nicht verwenden?

Anzahl der Antworten 12 Antworten
Gibt es immer einen guten Grund zu nicht deklarieren einen virtuellen Destruktor für eine Klasse? Wann sollten Sie konkret vermeiden Sie das schreiben? InformationsquelleAutor der Frage Mag Roader | 2008-11-19

C ++ "virtuelles" Schlüsselwort für Funktionen in abgeleiteten Klassen. Ist es nötig?

Anzahl der Antworten 8 Antworten
Mit der struct-definition, die unten gegeben... struct A { virtual void hello() = 0; }; Ansatz #1: struct B : public A { virtual void hello() { ... } }; Ansatz #2: struct B : public A