包含另一个类时,我总是需要写#include“headername.h”。是否可以在不编写或包含超过 1 个带有“#include”的类的情况下访问其他类?
问问题
324 次
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 回答