#include <QCoreApplication>
#include <iostream>
using namespace std;
namespace ns1 {
int pram = 6;
void foo(void){
cout << "ns1::foo()" << endl;
}
}
//无名名字空间变量,函数
int pram = 8;
void foo(void){
cout << "foo()" << endl;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
using namespace ns1;
// cout << pram << endl;歧义
// foo();
cout << ::pram << endl;//打印无命名字空间的变量 函数
::foo();
using ns1::pram;//名字空间声明
using ns1::foo;
cout << pram << endl;//局部的隐藏了全局的,这时候打印的是ns1中的变量函数
foo();
cout << ::pram << endl;//这时候要打印全局的,需要::
::foo();
return a.exec();
}
qt开发环境 - c++之无名名字空间,名字空间嵌套邻近原则(内藏外),名字空间别名
于 2017-08-10 21:04:45 首次发布