Templates nur bei verebten Klassen



  • Weiss jemand inwiefern ich bei Vererbung der Klassen Templates benutzen kann?

    Reicht es aus, wenn ich zum Beispiel eine Vererbte Unterklasse Namens UKlasse habe, dieser ein Template zuweise

    template<class T>
    class UKlasse
    {
    ...
    };
    
    template <class T>
    UKlasse<T>::UKlasse()
    {
    ...
    }
    

    in der main Funktion mit

    main()
    {
    UKlasse<T> Objekt("Parameter 1",1234);
    }
    

    ein neues Objekt erzeuge?

    Die Oberklasse jedoch ist wie gewohnt eine normale Klasse ohne Templates.

    Der Compiler sagt dass das Symbol T undefiniert sei!?
    Habs auf dem Borland Builder und Dev-C++ Compiler probiert.
    Beides dasselbe Ergebnis 😞

    Habe ein komplexes Programm,
    dessen Code eher noch mehr Verwirrung hervorrufen würde 😛

    Das Programm läuft in seinem Ur-Zustand ohne Probleme.
    Nur will ich nun mit STL-Templates arbeiten.

    Jemand eine Ahnung?

    Danke



  • template<typename T>
    class foo
    {
    public:
        foo(const T& type) : m_type(type) {}
    private:
        T m_type;
    };
    
    template <typename T>
    class bar : public foo<T>
    {
    public:
        bar(const T& type, const T& special) : foo(type), m_specialData(special) {}
    
    private:
        T m_specialData;
    };
    

    ...



  • Nur will ich nun mit STL-Templates arbeiten.

    Oha ... und warum schreibst du dir dann eine Templateklasse? wenn du doch mit Templates aus der Standard Template Library arbeiten willst? 😃



  • cRime2k6 schrieb:

    Weiss jemand inwiefern ich bei Vererbung der Klassen Templates benutzen kann?

    Reicht es aus, wenn ich zum Beispiel eine Vererbte Unterklasse Namens UKlasse habe, dieser ein Template zuweise

    template<class T>
    class UKlasse
    {
    ...
    };
    
    template <class T>
    UKlasse<T>::UKlasse()
    {
    ...
    }
    

    in der main Funktion mit

    main()
    {
    UKlasse<T> Objekt("Parameter 1",1234);
    }
    

    ein neues Objekt erzeuge?

    Die Oberklasse jedoch ist wie gewohnt eine normale Klasse ohne Templates.

    Der Compiler sagt dass das Symbol T undefiniert sei!?
    Habs auf dem Borland Builder und Dev-C++ Compiler probiert.
    Beides dasselbe Ergebnis 😞

    Habe ein komplexes Programm,
    dessen Code eher noch mehr Verwirrung hervorrufen würde 😛

    Das Programm läuft in seinem Ur-Zustand ohne Probleme.
    Nur will ich nun mit STL-Templates arbeiten.

    Jemand eine Ahnung?

    Danke

    Hmm, alles ziemlich schwammig und undeutig was du da sagst.
    Lese mal lieber was über Templates, hier ein guter Artikel dazu: http://www.c-plusplus.net/forum/viewtopic-var-t-is-128361.html


Anmelden zum Antworten