c++ 命名空间

#include 

// namespace是一个关键字,用来定义命名空间
namespace NameA
{
	int a;

	void swap(int *a, int *b)
	{
		int temp = *a;
		*a = *b;
		*b = temp;
	}

	namespace NameAA
	{

	};

	struct A
	{

	};
};

int a;

int main2_3()
{
	// 对命名空间中单个元素使用
	using NameA::swap;
	int b = 20;
	int c = 30;
	swap(&b, &c);

	a = 90;

	return 0;
}

void func()
{

}
// 2、使用 using 关键字
int main2_2()
{
	// 表明使用命名空间NameA中的内容
	// 但凡在这个声明之后使用的变量或者函数等,只要没指明具体的命名空间
	// 都将使用NameA中的内容
	// using 有效范围是当前的大括号{}
	using namespace NameA;  
	NameA::a = 100;
	// :: 不加前不加名字,代表使用默认的命名空间
	::a = 20;
	func();
	printf ("a = %d, %d\n", NameA::a, ::a);

	int b = 10;
	int c = 20;

	// swap 没有指明命名空间
	// 但是之前有了 using namespace NameA;  而 NameA中有 swaps
	swap (&b , &c);

	return 0;
}

// 命名空间的使用,1、域解析符::
int main2_1()
{
	a = 10;   // 全局的a

	NameA::a = 20;  // 使用命名空间 NameA中的变量a

	int b = 1;
	int c = 2;

	NameA::swap(&b , &c);

	printf ("b = %d, c = %d\n", b, c);
	
	return 0;
}

你可能感兴趣的:(C语言,c++,x,编程,函数)