C++ 类组合错误 : unrefined reference

标签 c++ class abstract-class

有这个恼人的错误。

我不断收到对类::方法的 undefined reference

这是我想做的代码

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;
}

提前致谢。

编辑:确切错误:对 `betray::betray()' 的 undefined reference

最佳答案

undefined reference 可能意味着以下之一:

  1. 您在基类中有一个方法声明,您调用了该方法但从未在任何派生类中实现。
  2. 或者,它已实现,但您没有链接到它,因此链接器无法找到它。

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

关于C++ 类组合错误 : unrefined reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100066/

相关文章:

c++ - Const 仍然允许在运算符函数 c++ 下进行更改

c++ - 如果在类内的构造函数<2中启动了空array [],为什么检测到堆栈破坏

c# - 创建抽象类还是使用处理器?

java - 扩展 Observable 的类的接口(interface)

C++ 数组声明

c++ - 不鼓励使用 GCC

java - 为什么我不必导入我刚刚制作的类以在我的主类中使用它? ( java )

c# - 从具有抽象属性的泛型类继承

c++ - 让 Mbed Nucleo F401RE 与 LCD TFT HX8347 配合使用

c++ - ldr [pc, #value] 的奇怪行为