我一直在制作这样的文件: 订单有意义吗?或者应该交换名称空间和#includes以及原因。
#ifndef CLASSNAME_H // header guards
#define CLASSNAME_H
#include "a.h" // includes in alphabetical order
#include "b.h" // user specified includes first
#include "c.h"
#include <vector> // then library includes
namespace MyNamespace
{
class ClassName
{
};
}
#endif
答案 0 :(得分:10)
是。那看起来不错。
虽然我以不同方式订购我的标题(但按字母顺序排列很好)。
我唯一要改变的是包括后卫。我创建了包含我的namspace以及类名。有几次,我有相同名称的类(但在不同的命名空间中)被相同的代码使用。
#ifndef MY_COMPANY_MY_NAME_SPACE_MYCLASSNAME_H // header guards
#define MY_COMPANY_MY_NAME_SPACE_MYCLASSNAME_H
#include "a.h" // includes in order of most specific to most general.
// My includes first.
// Then C++ headers <vector>
// I group all the containers together.
// Then C specific headers <sys/bla.h>
// Then C generic headers <ctype.h>
namespace MyNamespace
{
Class ClassName
{
};
}
#endif
答案 1 :(得分:4)
你所写的是完美的。我认为你不需要改变顺序。