using 申明:using NdkMethod::demonId;
申明的时候要注意二义性,因为using的申明的等级和就近申明的同样的变量的优先级是一致的,会产生二义性,导致编译错误。
using编译指令:using namespace NdkMethod;
打开命名空间,优先级低于就近,输出是就近的,如果有多个命名空间需要域::符号来定义使用哪一个命名空间的变量
// using使用.cpp : 定义控制台应用程序的入口点。
//
#include "iostream"
using namespace std;
namespace NdkMethod
{
int demonId = 10;
}
void test()
{
int demonId = 20;
//using申明:避免二义性(防止局部变量有冲突)
//下面的意思是,以后看到的demonId使用NdkMethod下面,但是编译器又有就近原则,会产生二异性
//using NdkMethod::demonId;//using申明和打开空间等级是一致的,声明下面的会产生错误
cout << "test demonId ==== " << demonId << endl;
}
//using编译指令
void test01()
{
int demonId = 20;
//using编译指令
using namespace NdkMethod;//打开命名空间,优先级低于就近,输出是就近的
//如果有多个命名空间需要域::符号来定义使用哪一个命名空间的变量
cout << "test01 demonId ==== " << demonId << endl;
}
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}