【发布时间】:2015-04-13 13:36:39
【问题描述】:
今天,一位同事询问是否有技术原因#include headers,然后再在 header 中声明一个类。具体来说,我对#includes 本身的顺序或forward declare 与#includes 的优点不感兴趣,但出于任何技术原因,一个顺序优于另一个顺序。
示例:假设 companions.h 是正确的,因为它要求 donna.h 和 clara.h 为 #include 和 CSpaceTimeContinuum 和 CTardis 可以被前向声明。 #include 然后转发声明会更好吗?
// companions.h
#include "donna.h"
#include "clara.h"
class CSpaceTimeContinuum;
class CTardis;
或者转发声明然后#include?p>
// companions.h
class CSpaceTimeContinuum;
class CTardis;
#include "donna.h"
#include "clara.h"
如果没有技术差异并且只是风格上的差异,我也很乐意了解这一点。谢谢!
【问题讨论】:
-
这里不是一个强有力的论点,更多的是一种习惯:包含对我来说是最重要的,所以文件的实际“手写”内容总是在它们下面。我不会自发寻找
#include <iostream>以上的代码。但这可能只是我。 -
等等...这个问题只是关于订购不相关的
#includes 和前向声明吗?CTardis这里与donna.h或clara.h无关?
标签: c++ header-files forward-declaration