c++ - (C++) 当两个类使用彼此的对象时,使用其他类的对象作为类中的参数

标签 c++ class parameter-passing

我的标题听起来有点奇怪...... 但我的问题是...

class A{
public:
    doSomething(B & b);
}

class B{
public:
    doSomething(A & a);
}

这不应该工作吗??

我收到错误消息说函数不带 1 个参数 因为标识符(类)未定义...

最佳答案

类型需要在使用前声明。由于类之间存在相互依赖性,因此需要使用前向声明。

class B; // Forward declaration so that B can be used by reference and pointer
         // but NOT by value.

class A{ public: doSomething(B & b); }

class B{ public: doSomething(A & a); }

请注意,这通常被认为是非常糟糕的设计,应尽可能避免。

关于c++ - (C++) 当两个类使用彼此的对象时,使用其他类的对象作为类中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17130017/

相关文章:

c++ - 初始化空的2D vector ?

ruby-on-rails - 如何获取其值等于 ruby​​ 中给定参数的散列键?

c++ - 将数组传递给函数 C++

parameter-passing - 如何在 NIM 中通过命令行正确传递参数?

c++ - if 语句中的字符比较无法正常工作

c++ - 单例对象的 Unresolved external symbol 链接错误

c++ - 从 C++ 实例化 QML

objective-c - 什么时候 NSObject 不被声明为父类?

ios - 如何继承具有 .xib 文件的自定义 View

python - python的解包操作符*和**是如何使用的?