c++【作用域】

:: 作用域运算符(表明 数据,方法归属)
int a=10;
void test(){
	int a=20;
	cout << a << endl; //20 局部变量在作用域内具有较高的优先权,屏蔽全局变量
	//访问全局变量
	cout << ::a << endl; //10
}
命名空间

避免标识符命名发生冲突,C++ 引入 关键字 namespace(命名空间),更好的控制标识符作用域。
注意:命名空间只能在全局范围内定义。

namespace A{int a=10;}
namespace B{int b=20;}
void test(){
	cout << A::a << endl;
	cout << B::b << endl;
}

命名空间内定义变量和函数

namespace A{
	int a=10;
	//即可声明又可实现
	void func();    
	void func1(){}; 
}
//成员函数
void A::func(){
	cout << a << endl; //此处可以不用 A:: , 因为 A::func 已经表明是命名空间A
}
//普通函数
void funcx(){
	cout << A::a << endl; //必须 A::
}

匿名命名空间

namespace{
	//属性,方法的作用范围 只属于该文件
}

版权声明:本文为Enginner_Yang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。