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;
}
C++命名空间与using指令详解
本文深入探讨了C++中命名空间的使用及using指令的细节,包括如何避免变量冲突和解决二义性问题。通过具体示例,解释了using申明和using编译指令的区别,以及它们在不同情况下的应用。

16万+

被折叠的 条评论
为什么被折叠?



