Was ist eine pseudo-virtuelle Funktion in C++?Was ist eine pseudo-virtuelle Funktion in C++?
Antwort
AFAIK es ist kein Begriff, der irgendwo mit einer offiziellen Definition erscheint.
Vielleicht spricht jemand über simulated dynamic binding?
Edit: eine schnelle Web-Suche schlägt vor, dass jemand ihren eigenen dynamischen Polymorphismus implementiert haben könnte, so dass sie vielleicht ihre eigenen Vtables haben. "Pseudo-virtuelle" Funktionen wären dann Funktionen, auf die über ihren Mechanismus zugegriffen wird, anstatt tatsächlich virtuelle Funktionen zu sein, da ihr C++ - Compiler sie versteht.
Ein Grund dafür wäre, multi-dispatch zu implementieren.
Haben Sie einen Kontext, auf den Sie uns verweisen können?
Ja, es scheint etwas mit simulierter dynamischer Bindung zu tun zu haben. Der Kontext ist ein Mechanismus, um Multithread-Animationen und Mesh-Morpher-Systeme auf einer 3D-Engine zu optimieren. Danke vielmals. –
Eine virtuelle Funktion mit einer Deklaration.
class Foo
{
int* bar;
Foo() : bar(0) { bar = new int; }
virtual ~Foo() { delete bar; }
}
Dies hat einen pseudo-virtuellen Destruktor, da es etwas in der Deklaration tut. Hier ist eine reine virtuelle Deklaration:
class Foo
{
Foo() { }
virtual ~Foo()=0;
}
Zumindest so habe ich es gelernt.
Ja, ich habe mich daran erinnert und es dort bearbeitet. – jkeys
Sie meinen wahrscheinlich eine ** Definition **. Alles, was verwendet werden kann, hat eine Deklaration. Auch reine virtuelle Funktionen können definiert werden. – Asik
Es tut mir leid, ich vergesse immer, dass die Begriffe, die zur Beschreibung einer Programmiersprache verwendet werden, völlig eindeutig sein müssen. Tut mir leid, ich habe keine formelle Ausbildung (noch?). – jkeys
habe ich den Begriff verwendet, gehört zu Multimethoden zu beziehen (in C++ sind diese in der Regel implementiert ein Array von Funktionszeigern verwendet, wo der Wahlschalter durch den Code zur Laufzeit ermittelt Offset):
(*multiMethod[ index ])()
Die Multimethod- Array ist nur ein Array von Funktionszeigern.
Ich habe diesen Begriff noch nie gehört. Ich denke, sie sprechen entweder über die Non-Virtual Interface idiom (NVI) oder sie sprechen über den Aufbau einer Dispatch-Tabelle von Funktionszeigern, wie man Polymorphismus/virtuelle Funktionen in C implementieren könnte (und tatsächlich machen C++ - Compiler das hinter den Kulissen)).
NVI ist das erste, was mir in den Sinn kam, als ich die Frage las .... – Dan
- 1. Was ist eine casted Parameteranweisung in C?
- 2. Ist clrscr(); eine Funktion in C++?
- 3. Was ist eine Nachricht in objective-c?
- 4. Was ist eine Bitmap in C?
- 5. Was ist eine "statische Methode" in C#?
- 6. Was genau ist eine Definitionsregel in C++?
- 7. Was ist eine virtuelle Methode in C++?
- 8. Objective-C: Was ist eine faule Klasse?
- 9. Was ist ** in C++?
- 10. Was ist eine inverse Funktion zu XOR?
- 11. Was ist für eine C-Startroutine erforderlich?
- 12. Was ist eine 'gültige' Std :: Funktion? Hier
- 13. Was ist eine "Operator Int" -Funktion?
- 14. Was ist diese Hash-Funktion?
- 15. Was ist Friend-Funktion in PHP?
- 16. Was ist der 'kurze' Datentyp in C?
- 17. Was ist eine MsgPack 'Zone'
- 18. Was ist eine gute Matrixmanipulationsbibliothek für C?
- 19. Was ist der Modifikator "statisch neu" für eine Funktion?
- 20. Was ist Vtable in C++
- 21. Was ist eine Wertklasse und was ist eine Referenzklasse in C#?
- 22. Was ist dealloc in objective C
- 23. wie eine Funktion in C++
- 24. Bestimmen, wo eine Funktion in C# definiert ist?
- 25. Was ist! 0 in C?
- 26. Was ist Vorwärtsreferenz in C?
- 27. Was ist DBL_MAX in C++?
- 28. Was ist '\ 0' in C++?
- 29. Was ist [und] in C#?
- 30. Was ist "-1L" in C?
Der Kontext ist ein Mechanismus zur Optimierung von Multithread-Animationen und Mesh Morpher-Systemen auf einer 3D-Engine. –