0

有这个烦人的错误。

我不断收到对 class::method 的未定义引用

这是我想做的代码

student::student(){
conscience* c;
unsigned short choice = rand() % 4;
if (choice == 0){
    c = new betray();
}
if (choice == 1){
    c = new silent();
}
if (choice == 2){
    c = new confused();
}
if (choice == 3){
    c = new experienced();
}

但我不断收到错误。

这种解决方法效果很好,但不在主类构造函数中,而是通过参数传递

student::student(conscience* c){
    m_Conscience = c;
}

提前致谢。

编辑:确切的错误:未定义对“背叛::背叛()”的引用

4

1 回答 1

2

未定义的引用可能意味着以下之一:

  1. 您在基类中有一个方法声明,您可以调用该方法声明,但从未在任何派生类中实现。
  2. 或者,它被实现了,但是你没有链接到它,所以链接器找不到它。

我建议你检查你是否链接到 betray.o。检查你的makefile。如果您没有makefile,我鼓励您编写一个。

于 2012-08-23T21:23:20.043 回答