Welcher Type? [Fuer FAQ]



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



  • net schrieb:

    kennst du den unterschied zwichen profi und amateur?

    Ja.
    Kennst du das?



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


Anmelden zum Antworten