Seite 1 von 1

Template erben

Verfasst: 20. September 2009 18:09
von derhandwerk
Hallo zusammen,

ich kämpfe momentan mit den c++ templates und hänge nun an folgender Problematik:

Ich habe eine abstrakte Oberklasse:

Code: Alles auswählen

template <class D>
class Dao
{
public:
    Dao();

    virtual QLinkedList<D> findAll();
};
Und eine Unterklasse PlayerDao, die Dao spezialisieren soll:

Header

Code: Alles auswählen

class Playerdao : public Dao<PlayerDto>
{
public:
    Playerdao();

    QLinkedList<PlayerDto> findAll();
};
Implementierung

Code: Alles auswählen

Playerdao::Playerdao()
{
}

QLinkedList<PlayerDto> Playerdao::findAll() {
    QLinkedList<PlayerDto> copy;

    return copy;
}
Möchte ich dies hier kompiliere bekomme ich folgende Meldung:

Undefined symbols:
"Dao<PlayerDto>::Dao()", referenced from:
Playerdao::Playerdao()in playerdao.o
Playerdao::Playerdao()in playerdao.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

Kann mir da jemand weiter helfen? :?:

Schonmal vorab vielen Dank für eure Mühe.

Gruß Wolf

Verfasst: 20. September 2009 18:30
von Christian81
Die Oberklasse ist nicht abstrakt...

Verfasst: 20. September 2009 18:50
von derhandwerk
Jetzt wo ich es mir ansehe, hast du vollkommen recht, der Konstruktur hat dann dort nichts zu suchen.

Jetzt kompiliert es aucht!

Hab Dank!

Verfasst: 20. September 2009 19:02
von Christian81
Das ist ne abstrakte Klasse:

Code: Alles auswählen

template <class D>
class Dao
{
public:
    Dao() = 0;

    virtual QLinkedList<D> findAll() = 0;
};