gpt4 book ai didi

c++ - 将此从构造函数传递给其他构造函数会在链接时产生 undefined reference

转载 作者:行者123 更新时间:2023-11-28 03:46:07 25 4
gpt4 key购买 nike

我正在尝试在代码块下编译具有以下结构的代码:

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

我试图将它与 codeblocks/g++ 放在一起并得到以下错误消息(在链接阶段):

undefined reference to `vtable for b (In function b: ...)

我尝试使用引用提取相同的东西,结果相同。我试图将 a::b_inst 更改为指针并在构造函数(代码部分)中使用 new 创建 b 的实例,结果相同。执行此操作的正确方法是什么?

顺便说一下,如果我不添加传递构造的指针,代码就可以工作,所以我认为它没有被答案 here 解决。

最佳答案

undefined reference to `vtable for b (In function b: ...)

这意味着您可能还没有实现b 的所有虚拟方法。 gcc 在定义第一个 AFAIK 时发出 vtable。

这意味着它与您的构造函数的实现无关。

关于c++ - 将此从构造函数传递给其他构造函数会在链接时产生 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com