abstracter Parametertyp!



  • Weiss einer wie ich folgende Methode:

    GetKey(const KId& Id, KValue*& Key);

    aufrufen kann so dass ich nach dem Aufruf auf Key zugreifen kann?

    KValue ist eine abstracte Klasse, und ich kann sie deswegen nicht voher initialisieren. Key zeigt nach dem Aufruf auf eine KValueCollection-Klasse die wiederrum von eine abstracte KComplexValue-Klasse abgeleitet ist.

    Danke.



  • GetKey erwartet eine Referenz auf einen Zeiger auf deine abstrakte Basis.
    Also gib das der Funktion auch 😉

    KId tmp;
    KValue *ptr; //zeigt auf nichts
    GetKey (tmp, ptr); //ptr zeigt auf irgendwas Neues
    ptr->foo(); //whatever
    

Anmelden zum Antworten