将此从构造函数传递给其他构造函数会在链接时产生未定义的引用
passing this from constructor to other constructor yields undefined reference on linking
我试图在代码块下编译以下结构的代码:
class a : public cppcms::application (has virtual members) {
public:
a() : b_inst(this) {}
...
b b_inst;
}
class b {
public:
b(a* ptr) : a_ptr(ptr) {}
private:
a* a_ptr;
...
}
我正试图把这个代码块/g++放在一起,并得到以下错误信息(在链接阶段):
未定义的vtable引用(In function b:…)
我试着拉同样的东西与参考,相同的结果。我试图将a::b_inst更改为指针,并在构造函数(codepare)中创建一个带有new的b实例,结果相同。正确的做法是什么?
顺便说一下,如果我不添加传递构造的指针,代码工作,所以我认为它不是由这里的答案解决
未定义的vtable引用(In function b:…)
这意味着您可能还没有实现b
的所有虚方法。当第一个虚值表被定义时,gcc会发出虚值表。
这意味着它与构造函数的实现无关。
相关文章:
- 链接器错误:无法解析构造函数
- 构造函数的链接时间自动注册
- 使用自定义工具集获取动态退出析构函数链接错误 - eh 矢量析构函数
- C++复制构造函数链接堆栈
- C 将外部函数链接为成员函数
- 将静态类与友元函数链接时出现奇怪错误
- 关于C++中构造函数链接的一些问题
- 构造函数/析构函数链接错误
- 查找导致库函数链接的函数
- C++虚拟覆盖函数链接器错误
- 将错误与定义的析构函数链接
- 对C++中的构造函数链感到困惑
- 模板函数链接器错误LNK2019
- 使用模板的构造函数链接器错误
- Qt移动构造函数链接错误
- 应该在构造函数链中使用移动语义
- 将const引用向下传递到构造函数链中
- 内联函数链接错误C++
- c++ OpenGL——gluBuild2DMipmaps函数链接错误
- 静态空函数链接错误