Klasse zu Klassen - Template erweitern???



  • Hallo zusammen,

    kann mir jemand einen Tipp geben, wie ich weiter vorgehen muss!

    Ich habe ein Klasse CTEST erstellt, welche ich nun zu einer Klassen-Template
    mit Variablentyp T erweitern möchte!

    hier mal meine bisherige Klasse schon als template (glaub ich!!!):
    -----------------------------
    template <typename T>
    class CTEST
    {
    private:
    T a;
    T b;

    public:
    CTEST(const CTEST &_t);
    CTEST(T _a, T _b);
    virtual ~CTEST();
    void setb(T _b);
    void seta(T _a);
    CTEST geta() const;
    CTEST getb() const;
    bool operator==(const CTEST& ct) const
    {
    if((a == ct.geta())&&(ct.getb() == b))
    return true;
    return false;
    }

    };
    -------------------------------------

    So, nun frag ich mich erstens ob das richtig ist was ich gemacht habe;

    Und zweitens weiß ich nicht wie ich nun die Methoden und Konstruktoren
    implementieren muss, dass der Compiler die Verbindung zur Klasse herstellen
    kann? (ich möchte sie nicht inline implementieren!)

    Hier noch mal mein Anfang einer Implementierung (funkt nicht):
    --------------------------------------
    template <typename T> CTEST<T>::CTEST(const CTEST &_t)
    {
    a = _t.a;
    b = _t.b;
    }
    -------------------------------------

    Kann mir jemand helfen!?!?

    Vielen Dank schon im voraus



  • //Header
    
    template<class T>
    class Test
    {
    public:
    	Test(const Test<T>& t);
    	Test(const T& d, const T& e);
    	T GetA() const;
    	T GetB() const;
    	bool operator==(const Test<T>& t) const;
    
    private:
    	T a;
    	T b;
    };
    
    //*.cpp
    #include "test.h"
    
    template<class T>
    Test<T>::Test(const Test<T>& t) { }
    
    template<class T>
    Test<T>::Test(const T& d, const T& e)
    : a(d), b(e) { }
    
    template<class T>
    T Test<T>::GetA() const { return a; }
    
    template<class T>
    T Test<T>::GetB() const { return b; }
    
    template<class T>
    bool Test<T>::operator==(const Test<T>& t) const 
    { return a && b; }
    

    ungefähr so


Anmelden zum Antworten