Klasse innerhalb Klasse als Template-Parameter verwenden?



  • Ich moechte gern folgende Verschachtelung realisieren:

    template <class T> class C1 {
    ...
    private:
      T   x[100];
    };
    
    class C2;
    class C2::state;      <- diese forward-declaration funktioniert nicht
    
    class C2 : public C1 < C2::state >
    {
    ...
    private:
      class state {
        float x,y;
      };
    }
    

    Weis jemand, ob so etwas moeglich ist?



  • Wollt nur den thread noch mal nach oben holen. Waer schoen, wenn jemand eine Antwort weis.



  • DU verwendest zur auspraegung eines Templates ne klasse C2::state die noch ned definiert ist, das funktioniert soweiso ned.
    Bei der ableitung muss die basisklasse natuerlich voll ausgepraegt vorliegen und compilierbar sein. kann sie aber nicht durch die abhaengigkeit im template.

    und glaub eingebettete klassen kann man gar ned forwarden ...

    ueberleg mal ob du wirklich die Ableitung brauchst, oder ob du nicht nen Interface nach ausen ziehen kannst ....

    Ciao ...


Anmelden zum Antworten