gpt4 book ai didi

C++多文件错误

转载 作者:搜寻专家 更新时间:2023-10-31 00:20:19 24 4
gpt4 key购买 nike

我一直试图将一个对象传递给属于一个类的函数,两个类都在自己的文件中......但是当我尝试将对象作为函数原型(prototype)的参数传递时,它给我一个错误提示该对象不存在...我将提供一些伪代码来演示我的问题

//class 1 .h
class Class1
{
public:
void function(Class2);//this is were one of my errors
};



//class 1 .cpp
void Class1::function(Class2 object )//another error
{
//stuff happens
}


//main.cpp
//then i simply call these functions like this

Class1 object;
Class2 object2;


int main()
{


object.function1(object2);
return 0;
}

我得到错误“Class2' has not been declared”
并且关于 Class1 原型(prototype)的错误不匹配任何类....如果有人可以解释我做错了什么,如果需要更多代码,那将是一个很大的帮助,我会发布它。
编辑

当我试图在第一类中包含 class2 的 header 时,我使用了错误的目录,因为我忘记了我已经将 .h 文件分离到那里自己的文件夹中,现在我已经修复了它所有的工作,非常感谢大家。

最佳答案

您需要在 Class1.h 中包含 Class2 的头文件。即:

//////////////////
//Class1.h

#include "Class2.h"

class Class1
{
public:
void function(Class2 arg);
};

如果您只使用指向 Class2 的指针作为参数,那么您可以前向声明 Class2 而不是包含 header ,即:

//////////////////
//Class1.h

//Forward declare Class2 so the compiler knows the name exists
class Class2;

class Class1
{
public:
void function(Class2 *arg);
};

还有更多信息 here如果你有兴趣。

关于C++多文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6233916/

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