gpt4 book ai didi

成员相互引用并被使用的 C++ 类

转载 作者:行者123 更新时间:2023-11-27 22:58:37 25 4
gpt4 key购买 nike

我有 2 个 C++ 类,其成员相互​​引用。我正在调用引用类的成员,所以我不能使用前向声明,因为我得到错误“不允许指向不完整类类型的指针”

class A {
B* b;

void foo() {
b->do_something();
}
};

class B {
A* a;

void bar() {
a->do_something_else();
}
};

有什么方法可以让包含在这里工作吗?

已经有一个类似名称的工单,但我不能在那里使用该解决方案。

最佳答案

只需将定义与声明分开:

class B;
class A {
public:
void foo();
void do_something_else(){}
private:
B* b;
};
class B {
public:
void bar();
void do_something(){}
private:
A* a;
};

//now B has a complete type, so this is fine
void A::foo() {
b->do_something();
}

//ditto
void B::bar() {
a->do_something_else();
}

关于成员相互引用并被使用的 C++ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30032161/

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