当双冒号“::”前没有附加 namespace 时,此语法意味着什么?
假设我有一个 Foo 类。在代码的某处有类似::Foo 的内容。
最佳答案
它表示全局命名空间。
以这段代码为例
#include <iostream>
int x = 10;
namespace N
{
int x = 20; // Or you could write int x = 10 + ::x;
}
int main()
{
int x = 30;
std::cout << ::x + N::x + x << std::endl;
}
在这个声明中考虑到这一点
std::cout << ::x + N::x + x << std::endl;
您可以编写 ::N::x
而不是 N::x
因为 namespace N 包含在全局 namespace 中。
关于c++ - 命名空间语法 "::Foo",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195409/