basisklasse



  • hi
    wenn ich von einem klassen-template ableite, dann kann ich auf dessen member nur zugreifen wenn ich den basisklassentypen davor schreibe:

    template<class T>
    struct base
    {
        typedef T type;
    };
    template<class T>
    struct derived : public base<T>
    {
        base<T>::type myvar;
    };
    

    nun fällt sofort ins auge, dass ich hier base<T> zweimal schreibe. lässt sich das irgendwie verhindern?



  • Jain, du kannst dir ein Typedef in die (ableitende) Klasse machen und dieses dann weiter nutzen. So hast du dann exakt 2 mal das gleiche geschrieben, aber dafür nicht noch öfters.

    Edit: Also so

    template<class T>
    struct base
    {
        typedef T type;
    };
    template<class T>
    struct derived : public base<T>
    {
        typedef base<T>::type MyType;
        MyType myvar;
    };
    


  • Skym0sh0 schrieb:

    Jain, du kannst dir ein Typedef in die (ableitende) Klasse machen und dieses dann weiter nutzen. So hast du dann exakt 2 mal das gleiche geschrieben, aber dafür nicht noch öfters.

    ja das hab ich mir auch schon überlegt, jedoch sind zwei mal immer noch mehr als ein mal...
    nagut, muss ich mich halt damit abfinden, danke.


Anmelden zum Antworten