【发布时间】:2021-08-13 12:39:10
【问题描述】:
我有“我的命名空间”(myns::) 方法实现的文件,在函数之前有很多“myns::”。我想使用命名空间编写,但它会在其他文件中可见。我不能在“使用命名空间 mysp;”之前写“静态”。
my_namespace_file.h:
namespace myns {
void F1();
void F2();
}
my_imp_file.h:
#include "my_namespace_file.h"
// problem is here
using namespace myns;
void F1() {}
void F2() {}
如果我在这里使用“使用命名空间 myns;”并将 my_imp_file.h 包含在我不会在此文件“myns::”中使用的其他文件中
【问题讨论】:
-
你也可以将实现包装在命名空间块中,这样你就不需要重复命名空间名称了吗?如果这不是您想要的,请显示一些代码来说明问题。
-
如果它是一个实现文件,你不应该在任何地方包含它
-
@THND 不要在头文件中使用
using namespace语句,至少在全局级别,这正是您发现的原因。仅在实现文件中或在特定范围内使用此类语句,但肯定不在全局级别。
标签: c++ namespaces