|
|
1
19
一般来说,首先尝试转发声明。这将减少编译时间等。如果不编译,请转到
(来自@moing duck的6,7,8,9) 他们可能更多,但我今天没戴语言法帽。 |
|
|
2
11
转发申报存在几个问题:
如果您认为您的构建花费了太长时间,那么尝试只在没有链接的情况下进行编译。如果您的代码需要10秒的编译时间和10分钟的链接时间,那么这个问题与一些额外的包含无关。同样,如果头文件中包含的内容太多,以至于实际上导致了性能问题,那么您可能需要将该文件的内容重构为多个较小的头文件。 那么,什么时候可以转发申报呢?如果在与实际声明相同的头文件中执行此操作。 例子:
或
|
|
|
3
10
如果您只需要一个指向类的指针,而不需要任何关于类的知识,而不需要它的名称,那么您可以使用forward声明。 |
|
|
4
2
作为一个初学者,当您需要使用它们包含的类型或函数时,您应该始终包含头文件-不要试图通过前向声明来“优化”您的构建-这几乎从来没有必要,即使是在大型项目上,只要项目的架构良好。 您唯一需要转发声明的时间是这样的情况:
其中每个结构(或类)引用另一个结构的类型。在这种情况下,您需要B的前向声明来解决问题:
|
|
|
5
2
你应该努力将你的
有关如何减少头依赖性的一些实用提示,请参见例如。 this article . |