0

包含另一个类时,我总是需要写#include“headername.h”。是否可以在不编写或包含超过 1 个带有“#include”的类的情况下访问其他类?

4

2 回答 2

1

#include指令的作用正是它的名字所暗示的,它实际上将所需文件的内容包含到源中。它是在编译过程的早期阶段完成的,在实际编译器获取源代码之前。包含所有头文件的源称为翻译单元,编译器在此翻译单元上工作。

至于为什么需要头文件,请记住 C++ 需要在使用之前声明或定义所有内容。如果编译器不知道有一个名为的类Foo,则不能声明 type 的变量Foo。如果你没有定义#include头文件Foo,编译器根本不会知道有这样一个类。

如果您最终不得不在许多源文件中包含许多头文件,您可以将公共头文件放在另一个头文件中,其唯一目的是包含其他头文件。例如,如果您在许多源文件中包含<string>,<vector><iostream>,那么您创建一个名为contains 的headers.h文件

#ifndef HEADERS_H__
#define HEADERS_H__

#include <iostream>
#include <string>
#include <vector>

#endif // HEADERS_H__

然后,您可以将此文件包含在源文件中:

#include "headers.h"
于 2013-08-19T13:50:38.653 回答
0

您可以创建自己的包含必要包含的头文件,然后包含此头文件。

于 2013-08-19T13:48:40.177 回答