为什么不同文件中的类在没有标题的情况下找不到对方?

Pea*_*Gen 0 c++ header-files visual-studio-2010

请查看以下代码

Main.cpp的

#include <iostream>

using namespace std;

int main()
{
    Class1 c;
}
Run Code Online (Sandbox Code Playgroud)

Class1.cpp

#include <iostream>

using namespace std;

class Class1
{
public:
    void click1()
    {
        cout << "Click 1" << endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

Class2.cpp

#include <iostream>

using namespace std;

class Class2
{
public:
    void click2()
    {
        cout << "Click 2" << endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

如果我将头文件添加到上面的类,它们可以工作.为什么C++在没有头文件的情况下不理解不同文件中的类?

Som*_*ude 6

在C++中,源文件称为翻译单元.每个翻译单元彼此分开,基本上不了解彼此的存在.您必须明确告诉编译器翻译单元应该知道什么.

这是通过声明事情来完成的.而不是在许多文件和地方使用相同的声明,而是将它们放在所有源文件包含的单个头文件中.