可能重复:
C++应该删除头文件吗?
在像C#和Java这样的语言中,没有必要在使用它之前声明(例如)一个类.如果我理解正确,这是因为编译器对代码进行了两次传递.在第一个中它只是"收集可用信息",在第二个中它检查代码是否正确.
在C和C++中,编译器只进行一次传递,因此当时所有东西都需要可用.
所以我的问题基本上就是为什么不用C和C++这样做.它不会消除头文件的需求吗?
我很清楚何时能够/不能使用前瞻性声明,但我仍然不确定一件事.
假设我知道我迟早要包括一个标题来取消引用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的标题?如果前者效率更高,那么如果有人清楚地解释了为什么我怀疑它与编译过程有关,我可以随时了解更多信息,我会很感激.
假设我们有一个庞大的代码库,并且我们正在使用 C++ 进行开发。我们是否每次都必须重新编译才能测试代码?
如果是的话,那么开发将需要很长时间。
这个问题的解决办法是什么?