gpt4 book ai didi

C++ 通过引用传递——这可以做到吗?

转载 作者:行者123 更新时间:2023-11-30 00:38:45 25 4
gpt4 key购买 nike

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

header1.h

class Class1{
public:
void function1(Class1 &);
};

header2.h

class Class2{
public:
void function2(Class2 &, Class1 &);
};

cpp2.cpp

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

主要.cpp

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

// functions

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

谢谢!

最佳答案

您可以使用前向声明:

class Class1; //forward declare Class1
class Class2{
public:
void function2(Class2 &, Class1 &);
};

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

关于C++ 通过引用传递——这可以做到吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10029849/

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