gpt4 book ai didi

c++ - C++ 中的相互依赖的类

转载 作者:行者123 更新时间:2023-12-03 06:57:37 27 4
gpt4 key购买 nike

假设我想在 C++ 中实现两个类,其中每个类都包含一个返回另一个类的实例的函数:

class A {
...
B fun1() {
B b;
return b;
}
}

class B {
...
A fun2() {
A a;
return a;
}
}
我该怎么做?我已经尝试向前声明这两个类并将它们的原型(prototype)放在头文件中,但是每次我运行时都会出现某种类型的缺失或不完整的定义错误。
有没有办法做到这一点?或者我必须返回是否必须返回指向对象的指针?

最佳答案

您需要转发声明返回它们的类和成员函数(因为您不能返回不完整的类型)

class B;

class A {
...
B fun1(); // Cannot define since B is not a complete type yet
};

class B {
...
A fun2() {
// A is complete, so you can declare and define the member function here
A a;
return a;
}
};

// B is now complete, so you can define A::fun1
inline B A::fun1() {
B b;
return b;
}

关于c++ - C++ 中的相互依赖的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64740021/

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