Welcher Type? [Fuer FAQ]
-
und wenn ich eine Template klasse habe, die bei int etwas anders macht
als bei char. So kann ich herausfindes was es fuer ein type ist.
-
Green_Ghost schrieb:
und wenn ich eine Template klasse habe, die bei int etwas anders macht
als bei char. So kann ich herausfindes was es fuer ein type ist.Das ist kein gutes Beispiel. In so einem Fall solltest du eher Überladung bzw. Spezialisierung verwenden. Hier sind alle nötigen Informationen schließlich zur Compilezeit bekannt. Kein Grund für die RTTI-Kanone.
-
Bashar schrieb:
Weil der Typ zur Laufzeit unterschiedlich sein kann:
Base* obj; if (blub) obj = new Derived1; else obj = new Derived2;
auch klar, ich suche nur einen "guten" grund überhaupt rtti
überhaupt einzusetzen. hat jetzt nichts direkt mit green_ghosts beitrag zu
tun, sondern nur mit dem warum.
-
auch klar, ich suche nur einen "guten" grund überhaupt rtti
überhaupt einzusetzen.Spontan fällt mir da z.B. double-dispatch ein. Z.B. wie in der Implementation eines azyklischen Visitors.
-
HumeSikkins schrieb:
auch klar, ich suche nur einen "guten" grund überhaupt rtti
überhaupt einzusetzen.Spontan fällt mir da z.B. double-dispatch ein. Z.B. wie in der Implementation eines azyklischen Visitors.
Und jetzt nochmal auf Deutsch.
-
audacia schrieb:
HumeSikkins schrieb:
auch klar, ich suche nur einen "guten" grund überhaupt rtti
überhaupt einzusetzen.Spontan fällt mir da z.B. double-dispatch ein. Z.B. wie in der Implementation eines azyklischen Visitors.
Und jetzt nochmal auf Deutsch.
ROFLMAO
:p
-
Ein azyklischer Visitor ist ein Designpattern -> www.google.de
DoubleDispatching ist eine Multithreading Technik, um die sicherheit eines Threads zu gewährleisten.
-
audacia schrieb:
HumeSikkins schrieb:
auch klar, ich suche nur einen "guten" grund überhaupt rtti
überhaupt einzusetzen.Spontan fällt mir da z.B. double-dispatch ein. Z.B. wie in der Implementation eines azyklischen Visitors.
Und jetzt nochmal auf Deutsch.
kennst du den unterschied zwichen profi und amateur?
btw: das 'spontan' ist wichtig
-
Glamdrink schrieb:
DoubleDispatching ist eine Multithreading Technik, um die sicherheit eines Threads zu gewährleisten.
LOL? So ein Schwachsinn.
-
-
Glamdrink schrieb:
DoubleDispatching ist eine Multithreading Technik, um die sicherheit eines Threads zu gewährleisten.
AFAIR ist das was ganz anderes...
das double dispatching kann man ein bischen wie templates zur laufzeit sehen.(jaja, ich wusste net, wie ichs anders umschreiben sollte^^) nehmen wir mal an, wir haben folgende konstellation:
class Base{...}; class A:public Base{...}; class B:public Base{...}; void test(Base* a,Base* b); int main(){ Base* a=new A; Base* b=new B; test(a,b); delete a; delete b; } }
ein einfacher fall. double dispatching löst das problem, wenn die Funktion test,je nachdem welche typen sich hinter a und b verstecken, sich anders verhalten soll(also doch en bissl wie templates^^)
ein einfaches beispiel wäre zb ein test ob zwei verschiedene formen sich überlappen, bei 2 kreisen muss das anders funktionieren als bei 2 quadraten, und bei einem kreis und einem quadrat ist das auch wieder anders.
/wie gesagt, alles AFAIR^^)
-
Vielleicht ist noch anzumerken, dass in "Mehr Effektiv C++" eine Richtline über double dispatch von S. Meyers geschrieben wurde. (5.7, Richtlinie 31) Dort steht auch, wie man nun test(..) implementieren kann.