undefined reference to vtable beim Aufruf Konstruktor der Basisklasse

Arbeite ich an einem Projekt für die Schule und ich lief in ein problem, ich bin nicht sicher, wie Sie Sie zu lösen. Hier sind die bits der code (nicht die ganze Klassen) und die Fehlermeldung:

class CCPU
{
public:

                         CCPU                          ( uint8_t         * memStart,
                                                         uint32_t          pageTableRoot );
virtual                 ~CCPU                          ( void ) { }
virtual uint32_t         GetMemLimit                   ( void ) const = 0;
virtual bool             SetMemLimit                   ( uint32_t          pages ) = 0;
virtual bool             NewProcess                    ( void            * processArg,
                                                         void           (* entryPoint) ( CCPU *, void * ),
                                                         bool              copyMem ) = 0;

bool                     ReadInt                       ( uint32_t          address,
                                                         uint32_t        & value );
bool                     WriteInt                      ( uint32_t          address,
          m_PageTableRoot;
};

Dies ist die Klasse, die erbt von der oben:

class CProcManager : public CCPU
{
public:

CProcManager( uint8_t* memStart,uint32_t pageTableRoot ) : CCPU(memStart, pageTableRoot) {}
virtual uint32_t         GetMemLimit                   ( void ) const;
virtual bool             SetMemLimit                   ( uint32_t          pages );
virtual bool             NewProcess                    ( void            * processArg,
                                                         void           (* entryPoint) ( CCPU *, void * ),
                                                         bool              copyMem );
static void              InitInfoPages                 (uint8_t * pages_mem);

};

Wäre und das ist der code ruft den Konstruktor:

CProcManager init_ccpu((uint8_t*)mem, 32/*just a test number*/);

Die Fehlermeldung die ich bekomme:

solution.o: In function `CProcManager::CProcManager(unsigned char*, unsigned int)':
/home/Jan/OSY/OSY-2/solution.cpp:19: undefined reference to `vtable for CProcManager'
solution.o: In function `CProcManager::~CProcManager()':
/home/Jan/OSY/OSY-2/solution.cpp:15: undefined reference to `vtable for CProcManager'
collect2: error: ld returned 1 exit status
make: *** [test1] Error 1

Alle Methoden der CCPU und CProcManager Klassen definiert sind, und ich bin eigentlich nicht ändern, die CCPU-Klasse (diese Klasse wurde in das Projekt Zuordnung).
Kann mir jemand bitte erklären, wo das problem liegt(ich denke, das ist etwas, was mit Definitionen)?

InformationsquelleAutor Johhny-T | 2014-04-21
Schreibe einen Kommentar