Hol*_*lly 6 c++ header-files forward-declaration
我很清楚何时能够/不能使用前瞻性声明,但我仍然不确定一件事.
假设我知道我迟早要包括一个标题来取消引用A类的对象.我不清楚是否更有效地做类似的事情.
class A;
class B
{
A* a;
void DoSomethingWithA();
};
Run Code Online (Sandbox Code Playgroud)
然后在cpp有类似的东西..
#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}
Run Code Online (Sandbox Code Playgroud)
或者我也可以首先在B的头文件中包含A的标题?如果前者效率更高,那么如果有人清楚地解释了为什么我怀疑它与编译过程有关,我可以随时了解更多信息,我会很感激.
当你使用前向声明时,你明确地说“B 类不需要知道 A 类的内部实现,它只需要知道名为 A 的类存在”。如果您可以避免包含该标题,请避免使用它。- 使用前向声明是一种很好的做法,因为您可以通过使用它来消除多余的依赖项。
另请注意,当您更改头文件时,会导致重新编译包含它的所有文件。
这些问题也会对您有所帮助:
前向申报的缺点是什么?
提前申报的目的是什么?
| 归档时间: |
|
| 查看次数: |
3275 次 |
| 最近记录: |