gpt4 book ai didi

c++ - 哪个先出现? header 守卫、命名空间和包含

转载 作者:IT老高 更新时间:2023-10-28 22:21:18 25 4
gpt4 key购买 nike

我一直在制作这样的文件:顺序有意义吗?或者应该交换命名空间和#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

最佳答案

是的。这看起来不错。

虽然我对标题的排序方式不同(但按字母顺序很好)。

我唯一要改变的是包含保护。我将包含我的 namespace 以及类名。有好几次,我有同名的类(但在不同的命名空间中)被相同的代码使用。

#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

关于c++ - 哪个先出现? header 守卫、命名空间和包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7638133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com