How does #include work in C++?(#include 如何在 C++ 中工作?)
问题描述
如果一个库包含在一个类头中,然后这个头包含在另一个类中,我是否必须再次包含该库?
If a library is included in a class header and then this header is included in another class do I have to include the library again?
例如:
#ifndef A_H
#define A_H
#include<someLibrary.h>
class A{
...
}
#endif
然后另一个类包含 A.h 标头
Then another class includes the A.h header
#include<A.h> //include class A
class B{
...
}
我必须在 B 类中包含someLibrary.h"吗?
Do I have to include the "someLibrary.h" in class B?
推荐答案
不,#include
s 是可传递的.
但是,如果您的第二个文件本身使用 someLibrary 中的符号,则重新包含标题是一种不错的方式.这样你就不会希望和祈祷"你永远不会删除中间包含.如果每个源文件 #include
都包含它直接需要的所有内容,那么您的代码库将会更加健壮.标头守卫可防止这是一种浪费的策略.
However, if your second file itself uses symbols from someLibrary, it's good style to re-include the header. That way you're not "hoping and praying" that you never remove the intermediate include. Your codebase will be more robust if every source file #include
s everything that it directly needs. Header guards prevent this from being a wasteful policy.
这篇关于#include 如何在 C++ 中工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:#include 如何在 C++ 中工作?
- 我应该为我的项目使用相对包含路径,还是将包含目录放在包含路径上? 2022-10-30
- Easyx实现扫雷游戏 2023-02-06
- Qt计时器使用方法详解 2023-05-30
- C语言手把手带你掌握带头双向循环链表 2023-04-03
- ubuntu下C/C++获取剩余内存 2023-09-18
- C++ 数据结构超详细讲解顺序表 2023-03-25
- 详解C语言中sizeof如何在自定义函数中正常工作 2023-04-09
- c++ const 成员函数,返回一个 const 指针.但是返回的指针是什么类型的 const? 2022-10-11
- C语言详解float类型在内存中的存储方式 2023-03-27
- C语言qsort()函数的使用方法详解 2023-04-26