我非常清楚何时可以/不能使用前向声明,但还有一件事不确定。
假设我知道早晚需要包含一个头文件以解引用类A的对象。 我不确定是否更有效率的方式是像这样...
class A;
class B
{
A* a;
void DoSomethingWithA();
};
然后在cpp文件中应该有类似这样的内容...
#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}
我是否应该在B的头文件中直接包含A的头文件呢?如果前者更有效率,那么我希望有人能清楚地解释一下为什么,因为我怀疑这与编译过程有关,我总是需要学习更多关于它的知识。