C++通过引用传递 - 可以这样做吗?

Chr*_*nes 1 c++ reference function

我有几个文件导致编译错误,可以执行以下操作吗?

那么header1.h

class Class1{
public:
void function1(Class1 &);
};
Run Code Online (Sandbox Code Playgroud)

header2.h

class Class2{
public:
void function2(Class2 &, Class1 &);
};
Run Code Online (Sandbox Code Playgroud)

cpp2.cpp

#include "header2.h"
void Class2::function2(Class2 & my2Class, Class1 & my1Class){};
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include "header1.h"
#include "header2.h"

// functions
Run Code Online (Sandbox Code Playgroud)

该错误表明header2.h不知道Class1作为一个类型.如何在此头文件中声明类型为Class1的对象,而不使用include或不将两个类放在同一个文件中(它们是完全独立的,只应满足main中调用的内部函数)?

谢谢!

Luc*_*ore 7

您可以使用前向声明:

class Class1; //forward declare Class1
class Class2{
public:
void function2(Class2 &, Class1 &);
};
Run Code Online (Sandbox Code Playgroud)

将类型的参数传递给函数不需要完全定义类型.