C++ C++;多文件错误

C++ C++;多文件错误,c++,C++,我一直在尝试将一个对象传递到一个属于某个类的函数中,这两个类都在自己的文件中…但是当我尝试将该对象作为函数原型的参数传递时,它会给我一个错误,说该对象不存在。。。我将提供一些伪代码来演示我的问题 //class 1 .h class Class1 { public: void function(Class2);//this is were one of my errors }; //class 1 .cpp void Class1::function(Class2 obj

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

//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”尚未声明“
关于Class1原型的错误与任何类都不匹配。。。。 如果有人能解释我做错了什么,这将是一个很大的帮助,如果需要更多的代码,请提问,我会发布它。
编辑


当我试图将class2的标题包含在class 1中时,我使用了错误的控制器,因为我忘了我已经将.h文件分隔到了自己的文件夹中。现在我已经修复了所有这些文件,非常感谢大家。

您尝试过这样做吗

main.cpp:


#include "class1.h"
...
int main()
{
    Class1 object;
    Class2 object2;

    object.function1(object2);
    return 0;
}

诀窍是在main.cpp文件的顶部使用
#include“class1.h”
,您需要在class1.h中包含Class2的头文件。即:

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

#include "Class2.h"

class Class1
{
public:
    void function(Class2 arg);
};
如果只使用指向Class2的指针作为参数,则可以向前声明Class2,而不包括标题,即:

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

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

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

如果您感兴趣,还有更多信息。

好吧,事实上Class2尚未声明

所以


实际上,您需要让编译器知道您将在文件中的任何位置使用的类


请看一个非常类似的问题:

啊,好的。我假设他在Class1.h和.cpp文件中有Class2。谢谢你的帮助,现在一切都正常了:D+1和接受的答案你在哪里定义Class2?O是的,我忘了在示例中添加代码……但是是的,它在那里:)谢谢:)很高兴它帮助了你。
// Class2.h:
class Class2
{

};

// Class1.h:
#include "Class2.h"

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

// Class1.cpp:
#include "Class1.h"
void Class1::function(Class2 object)
{
    //stuff happens
}

// main.cpp:
#include "Class1.h"
Class1 object;
Class2 object2;

int main()
{
    object.function1(object2);
    return 0;
}