相关疑难解决方法(0)

为什么需要前瞻性声明?

可能重复:
C++应该删除头文件吗?

在像C#和Java这样的语言中,没有必要在使用它之前声明(例如)一个类.如果我理解正确,这是因为编译器对代码进行了两次传递.在第一个中它只是"收集可用信息",在第二个中它检查代码是否正确.

在C和C++中,编译器只进行一次传递,因此当时所有东西都需要可用.

所以我的问题基本上就是为什么不用C和C++这样做.它不会消除头文件的需求吗?

c c++ compiler-construction declaration

19
推荐指数
2
解决办法
5070
查看次数

前向声明/何时最好包含标题?

我很清楚何时能够/不能使用前瞻性声明,但我仍然不确定一件事.

假设我知道我迟早要包括一个标题来取消引用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++ header-files forward-declaration

6
推荐指数
2
解决办法
3275
查看次数

开发过程中每次都需要重新编译C++代码吗?

假设我们有一个庞大的代码库,并且我们正在使用 C++ 进行开发。我们是否每次都必须重新编译才能测试代码?

如果是的话,那么开发将需要很长时间。

这个问题的解决办法是什么?

c++ gcc g++ clang llvm-clang

3
推荐指数
1
解决办法
5736
查看次数