2009-08-21 9 views

Antwort

4

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?

+0

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. –

0

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.

+0

Ja, ich habe mich daran erinnert und es dort bearbeitet. – jkeys

+0

Sie meinen wahrscheinlich eine ** Definition **. Alles, was verwendet werden kann, hat eine Deklaration. Auch reine virtuelle Funktionen können definiert werden. – Asik

+0

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

1

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.

2

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)).

+0

NVI ist das erste, was mir in den Sinn kam, als ich die Frage las .... – Dan