我很清楚何时可以/不能使用前向声明,但我仍然不确定一件事。
假设我知道我迟早必须包含一个标头来取消引用 A 类的对象。我不清楚做类似的事情是否更有效。
class A;
class B
{
A* a;
void DoSomethingWithA();
};
然后在cpp中有类似的东西..
#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}
或者我也可以首先在 B 的头文件中包含 A 的头文件?如果前者效率更高,那么如果有人清楚地解释为什么我怀疑它与编译过程有关,我将不胜感激。