使用“:: member”引用全局命名空间有什么用处吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用“:: member”引用全局命名空间有什么用处吗?相关的知识,希望对你有一定的参考价值。
在C ++中,名称空间myNamespace
的成员可以引用为myNamespace::member
。
但是,显然存在类似于上面引用全局命名空间的语法 - 简单地说::member
。考虑:
int foo() {
return 4;
}
::foo(); // What is the difference between
foo(); // these two lines?
简而言之,在这种情况下使用foo();
和::foo();
之间是否存在功能差异,还是它们完全相同?
答案
示例代码:
#include <iostream>
void foo() {
std::cout << 1;
}
namespace my_ns
{
void foo() {
std::cout << 2;
}
void goo1() {
::foo();
}
void goo2() {
foo();
}
}
int main(int c, char** args) {
my_ns::goo1();
my_ns::goo2();
return 0;
}
以上是关于使用“:: member”引用全局命名空间有什么用处吗?的主要内容,如果未能解决你的问题,请参考以下文章
C++中当未命名空间跟全局变量在一起的时候,怎么调用未命名空间里的变量