(C++) template Klasen



  • Problem:
    bekomme in Visual C keine Template Klasse hin. Wird zwar alles ordentlich compiliert aber ich kann in die cpp-Datei totalen blödsinn schreiben und wenn ich ne Instanz erzeugen will, habe ich die Fehlermeldun unaufgeloester externer Verweis für "CListe<CTest>::CListe<CTest>(void)" ... bla bla

    //Liste.h
    //... if !defined usw

    template <class T>
    class CListe
    {
    CListe();
    virtual ~CListe();
    };

    //Liste.cpp
    template <class T>
    CListe<T>::CListe()
    {
    }

    template <class T>
    CListe<T>::~CListe()
    {
    }

    // main.cpp
    #include "Liste.h"
    #include "Test.h" // andere Klasse

    int main()
    {
    CListe<CMenu> test;
    return 0;
    }



  • Bei templates gibts 2 Wege:

    export (wird vom VC nicht unterstützt )

    oder include.

    Der Compiler muss wissen mit welchem Typ das Template verwendet werden soll.
    Um dies zu erreichen musst Du den Inhalt von cpp per include behandeln.

    Du könntest z.B. .cpp zu .tpl machen und im Projekt wo Du

    #include "mytemplate.h" stehen hast #include "mytemplate.tpl" schreiben.


Anmelden zum Antworten