[c++] virtual tables & compilen

Pagina: 1
Acties:

  • viper
  • Registratie: Augustus 1999
  • Laatst online: 19-08 19:38
Ik heb het volgende probleem.

Ik heb een basisclass Object
code:
1
2
3
4
5
6
7
class Object
{
public:
        Object () {}
        virtual ~Object () {}
        virtual int compareTo(Object *);
};

Nu heb ik ook classes die overerven van deze klasse Object. Ik heb voor deze klasses netjes virtual function compareTo en een destructor gemaakt. Compilen gaat goed, maar het linken geeft problemen.

vector.o: In function `Vector::~Vector(void)':
vector.o(.gnu.linkonce.t._._6Vector+0x29): undefined reference to `Object virtual table'

Dit heb ik dus bij alle classes die erven van Object.
Mijn Makefile :
code:
1
2
3
4
5
6
PROGNAME=rekhdrs
OBJS=persoon.o rekeninghouder.o vector.o databasemanager.o rekhdrs.o
CFLAGS=-O2 -march=i586 -Wall -Isuc/src -I'/usr/include/mysql'

LDFLAGS=-s -Lsuc/src -lsuc -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lldap
include Makefile.inc

Makefile.inc
code:
1
2
3
4
5
6
7
8
${PROGNAME}:    ${OBJS}
                g++ ${CFLAGS} ${LDFLAGS} -o ${PROGNAME} ${OBJS}

%.o:            %.cpp
                g++ -c ${CFLAGS} -o $@ $<

clean:
                rm -f ${OBJS} ${PROGNAME} core

Moet ik extra parameters meegeven bij het linken of wat doe ik verkeerd?

Verwijderd

Ik heb absoluut geen verstand van c++ maar is object misschien een verboden woord :D

Verwijderd

viper schreef op 31 December 2002 @ 15:59:
Ik heb het volgende probleem.

Ik heb een basisclass Object
code:
1
2
3
4
5
6
7
class Object
{
public:
        Object () {}
        virtual ~Object () {}
        virtual int compareTo(Object *);
};
heb je wel ergens een definitie voor deze compareTo? Of ben je vergeten hem pure virtual te maken (=0)?

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

http://new-brunswick.net/workshop/c++/faq/strange-inheritance.html

edit:
Kortom je bent idd de definitie voor compareTo vergeten, of anders pur virteel maken met =0

[ Voor 34% gewijzigd door Zoijar op 31-12-2002 17:52 ]


  • viper
  • Registratie: Augustus 1999
  • Laatst online: 19-08 19:38
Idd. =0 vergeten

[ Voor 58% gewijzigd door viper op 03-01-2003 19:19 ]