例如,我有 2 个按以下顺序定义的类...
class A
{
int value;
printValue(B b)
{
cout << b.value
}
};
class B
{
int value;
printValue(A a)
{
cout << a.value;
}
}
我如何在 A 中使用 B 对象,因为 B 定义如下?
您可以将类的声明和实现分开,在声明头文件中前向声明它们,并在函数中使用引用。
档案啊
class B; // forward declaration
class A {
public:
int value;
void printValue(const B& b) const; // pass by reference
};
文件 Bh
class A; // forward declaration
class B {
public:
int value;
void printValue(const A& a) const; // pass by reference
};
然后,有单独的实现文件。例如,A
的实现文件A.cpp
:
#include "A.h"
#include "B.h"
void A::printValue(const B& b) const {
std::cout << b.value;
}
同样对于B.cpp
.
请注意,我已经修复了printValue
函数缺少的返回类型,并制作了这些函数const
。