我很清楚何时可以/不能使用前向声明,但我仍然不确定一件事。
假设我知道我迟早必须包含一个标头才能取消引用 A 类的对象。
我不清楚做类似的事情是否更有效。
class A;
class B
{
A* a;
void DoSomethingWithA();
};
然后在cpp中有类似的东西..
#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}
或者我是否可以首先将 A 的标头包含在 B 的头文件中?
如果前者更有效,那么如果有人清楚地解释原因,我将不胜感激,因为我怀疑它与编译过程有关,我总是可以通过了解更多信息来做到这一点。
尽可能使用前向声明(如您的示例中所示)。这减少了编译时间,但更重要的是最大限度地减少了不需要知道也不关心实现细节的代码的头文件和库依赖性。一般来说,除了实际实现之外,没有任何代码应该关心实现细节。
以下是谷歌对此的理由:头文件依赖关系 https://google.github.io/styleguide/cppguide.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)