有没有办法不使用名称空间中的项目?
Is there a way to not use an item from a namespace?
我学会了打字
using namespace std;
放在程序开头是个坏习惯,因为它包含了命名空间中的每个函数。如果存在名称冲突,这可能会导致错误。
我的问题是,是否有一种方法可以指定您不想使用哪些命名空间函数?有没有什么语句,比如
not_using std::cin;
那可以做到这一点?
您可以using ns_name::name;
只是您想要无限制访问的名称。
你不能那样做(包含所有内容然后有选择地排除某些内容)。
您的选择是:
1) 始终明确限定名称。喜欢std::vector<int> v;
2) 拉入所有名称 using namespace std;
3) 仅引入您需要的名称,例如 using std::vector;
然后执行 vector<int> v;
- "vector" 以外的名称不会被引入。
注意:using namespace std;
不必进入全局范围并污染整个文件。如果你愿意,你可以在一个函数中完成它:
void f() {
using namespace std;
// More code
}
这样,只有 f()
会在其本地范围内提取所有名称。 using std::vector;
等
也是如此
不使用全局命名空间范围,而是使用以下语法:
例如 :
std::cout :
有关更多示例,请阅读:
http://www.cplusplus.com/doc/tutorial/namespaces/
我学会了打字
using namespace std;
放在程序开头是个坏习惯,因为它包含了命名空间中的每个函数。如果存在名称冲突,这可能会导致错误。
我的问题是,是否有一种方法可以指定您不想使用哪些命名空间函数?有没有什么语句,比如
not_using std::cin;
那可以做到这一点?
您可以using ns_name::name;
只是您想要无限制访问的名称。
你不能那样做(包含所有内容然后有选择地排除某些内容)。
您的选择是:
1) 始终明确限定名称。喜欢std::vector<int> v;
2) 拉入所有名称 using namespace std;
3) 仅引入您需要的名称,例如 using std::vector;
然后执行 vector<int> v;
- "vector" 以外的名称不会被引入。
注意:using namespace std;
不必进入全局范围并污染整个文件。如果你愿意,你可以在一个函数中完成它:
void f() {
using namespace std;
// More code
}
这样,只有 f()
会在其本地范围内提取所有名称。 using std::vector;
等
不使用全局命名空间范围,而是使用以下语法: 例如 : std::cout :
有关更多示例,请阅读: http://www.cplusplus.com/doc/tutorial/namespaces/