例如,我按以下顺序定义了2个类...
class A
{
int value;
printValue(B b)
{
cout << b.value
}
};
class B
{
int value;
printValue(A a)
{
cout << a.value;
}
}
Run Code Online (Sandbox Code Playgroud)
如何在A中使用B对象,因为B定义如下?
您可以单独声明和实现类,在声明头文件中声明它们,并在函数中使用引用.
文件啊
class B; // forward declaration
class A {
public:
int value;
void printValue(const B& b) const; // pass by reference
};
Run Code Online (Sandbox Code Playgroud)
文件Bh
class A; // forward declaration
class B {
public:
int value;
void printValue(const A& a) const; // pass by reference
};
Run Code Online (Sandbox Code Playgroud)
然后,有单独的实现文件.例如,A的实现文件A.cpp:
#include "A.h"
#include "B.h"
void A::printValue(const B& b) const {
std::cout << b.value;
}
Run Code Online (Sandbox Code Playgroud)
并且类似地B.cpp.
请注意,我已修复了printValue函数的缺失返回类型,并创建了这些函数const.