相关疑难解决方法(0)

可以使用哪些技术来加速C++编译时间?

可以使用哪些技术来加速C++编译时间?

这个问题出现在Stack Overflow问题C++编程风格的一些评论中,我很想知道它有什么想法.

我见过一个相关的问题,为什么C++编译需要这么长时间?,但这并没有提供很多解决方案.


这里投票有Visual Studio支持共享项目之间的预编译头

c++

239
推荐指数
17
解决办法
10万
查看次数

是否应该使用前向声明而不是尽可能包括?

每当类声明仅使用另一个类作为指针时,使用类前向声明​​而不是包含头文件是否有意义,以便先发制人地避免循环依赖的问题?所以,而不是:

//file C.h
#include "A.h"
#include "B.h"

class C{
    A* a;
    B b;
    ...
};
Run Code Online (Sandbox Code Playgroud)

改为:

//file C.h
#include "B.h"

class A;

class C{
    A* a;
    B b;
    ...
};


//file C.cpp
#include "C.h"
#include "A.h"
...
Run Code Online (Sandbox Code Playgroud)

有什么理由不尽可能不这样做吗?

c++ forward-declaration

74
推荐指数
7
解决办法
3万
查看次数

什么是<iosfwd>标题?

<iosfwd>标题用于什么(在此文件中提到)?

为什么有必要?

任何例子?

c++ iostream forward-declaration iosfwd

59
推荐指数
3
解决办法
2万
查看次数

为什么要包含一个头和前向声明包含在同一个cpp文件中的类?

我一直在为我的大学项目寻找恐惧SDK,但是我注意到了一些类似的代码:

foo.h中

class Foo
{
    public:
        int iSomething;
};
Run Code Online (Sandbox Code Playgroud)

Bar.cpp:

#include "Foo.h"

// Forward declarations
class Foo;
Run Code Online (Sandbox Code Playgroud)

是否有任何特殊原因要转发声明并在同一个cpp文件中包含相应的标头?或者前向声明是多余的,因为标题包含在内?

编辑:

每次我在代码中看到它时,include语句总是在前向声明之前.

c++ header forward-declaration

5
推荐指数
1
解决办法
1478
查看次数

标签 统计

c++ ×4

forward-declaration ×3

header ×1

iosfwd ×1

iostream ×1