Problem s konstruktorom v C++

Sekcia: Programovanie 01.08.2012 | 12:06
PIPO   Návštevník
Cawte
V C++ si vytvorim triedu a v nej konstruktor. Najprv to napisem v headre a potom napisem .cpp a tam vytvaram konstruktor
Device.h
...
public:
Device(vector<Addr> addresses);
...
Device.cpp
Device::Device(vector<Addr> addresses) //-> tento riadok mi vyznačí ako chybný: undefined reference to `vtable for std::Device'
{
.....
}
Ďakujem
ak viete preco mi hadze chybu na konstruktor tak budem velmi vdacny.
    • Re: Problem s konstruktorom v C++ 01.08.2012 | 15:01
      Avatar Grawp   Používateľ
      Pozri, či nemáš niekde v triede Device virtual function, ktorá neni definovaná.
      Btw. používať hocijaḱú vačšiu triedu ako argument funkcie je prasarina. Predávaj to referenciou, alebo pointerom.
      • Re: Problem s konstruktorom v C++ 01.08.2012 | 15:11
        PIPO   Návštevník
        Ďakujme
        destruktor som nemal definovany. :(
        jj argumenty su pointre
        Som vdacny.
        • Re: Problem s konstruktorom v C++ 01.08.2012 | 15:28
          Avatar Grawp   Používateľ
          Je to taká pekná chyba. Kompilátor automaticky generuje skrytý kód v konštruktore na inicializáciu VPTR, ak nájde nejakú funkciu deklarovanú ako virtual, ale samotná VTABLE sa generuje až keď je definovaná prvá virtual funkcia, alebo tak nejak podobne.