gpt4 book ai didi

c++ - #include 指令和 "using"语句的顺序在 C++ 头文件的开头是否重要?

转载 作者:太空宇宙 更新时间:2023-11-04 11:52:22 25 4
gpt4 key购买 nike

我正在清理 C++ 头文件并注意到类似以下内容:

#if !defined(HEADER_H_)
#define HEADER_H_

#include <vector>
#include <string>

using namespace std;

#include<stdio.h>

#include "Blar/ObjA/Model.h"

namespace blar{
class Blar;
}

#include <Blar/Blar.h>
#include <Blar/ObjB/OtherModel.h>

using namespace blar;

#include <Utilities/OtherThing.h>
#include <qstringlist.h>

这只是不好的做法,还是每个 #include/using/namespace 相关声明的某些后果实际上取决于顺序?由于中间没有代码,我不这么认为,但我不熟悉太多微妙之处......

最佳答案

如果标题写得正确,那没关系。如果它们相互依赖,就会产生很大的不同。

// header 1
#undef FOO
#define FOO 1

// header 2
#undef FOO
#define FOO 2

这是一个愚蠢的例子,但如果你不小心,在不使用预处理器的情况下很容易得到类似的冲突。

关于c++ - #include 指令和 "using"语句的顺序在 C++ 头文件的开头是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17600752/

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