在包含另一个类时,我总是需要写#include "headername.h"。是否可以在不编写其他类或使用“#include”包含多个类的情况下访问其他类?
最佳答案
什么 #include
指令的作用正如其名称所暗示的那样,它确实将所需文件的内容包含到源中。它是在编译过程的早期阶段完成的,在实际编译器获取源代码之前。包含所有头文件的源代码称为翻译单元,编译器就在这个翻译单元上工作。
至于为什么需要头文件,请记住 C++ 需要在使用前声明或定义所有内容。如果编译器不知道有一个名为 Foo
的类你不能声明 Foo
类型的变量.如果你不#include
那里的头文件 Foo
被定义,编译器根本不知道有这样一个类。
如果你最终不得不在许多源文件中包含许多头文件,你可以将通用头文件放在另一个头文件中,其唯一目的是包含其他头文件。例如,如果您在许多源文件中包含 <string>
, <vector>
和 <iostream>
,然后创建一个名为 headers.h
的文件含
#ifndef HEADERS_H__
#define HEADERS_H__
#include <iostream>
#include <string>
#include <vector>
#endif // HEADERS_H__
然后您可以将此文件包含在您的源文件中:
#include "headers.h"
关于C++ 质量-#include,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18315385/