当前位置:Gxl网 > 互联网 > 名称空间

名称空间

时间:2021-07-01 10:21:17 帮助过:5人阅读

#ifndef TEST_H_
#define TEST_H_

namespace ThinkingInCppDemoLib  // 这个就是一个名称空间,ThinkingInCppDemoLib这个是名称空间的名字,
	// 在这里使用名称空间,为了避免在其它的人编写时使用相同的类 class f 类,
{
	class t  // 这个类在名称空间里,这个地方也可以是全局函数\变量名称、全局类名、全局结构名\枚举名\联合名。
	{
	private:
		int c;
	public:
		t(int cc);
		~t();
	};
	t::t(int cc) : c(cc)
	{
		 std::cout << "xiao cui ai ni. " << std::endl;
	}
	t::~t()
	{

	}
}

#endif

# include 
# include "test.h"

using namespace std;
//using namespace ThinkingInCppDemoLib; //这个是using 指令,将ThinkingInCppDemoLib 名称空间里的所有的都导入到此文件里,
//using ThinkingInCppDemoLib::t;  // 这个是using 声明,只是将f 类导入到此文件里边,
//namespace BST = ThinkingInCppDemoLib; // 这个就是讲ThinkingInCppDemoLib 起了一个别名,在使用ThinkingInCppDemoLib 就可以用BST 代替,

int m = 0; // 这个是外部的,等于 extern int m = 0,外部的这里定义的是一个全局变量,所有的源代码都可以使用,在使用的时候要声明,
static int n; // 静态的在当前的文件里边可以使用,

int mm = 90;  // 这个是全局名称空间,没有名称,用四个点就可以调用用在主函数中,

void f()  // 这个是外部的,是一个全局的,
{
	static int a;

}

static void g()
{

}

int main()
{
	ThinkingInCppDemoLib::t b(6); // 这个就是完全限定名称,
	
	int mm = 9;
	cout << ++mm << endl; // 输出是10,
	cout << ::mm << endl; // 输出的是90,这个就是调用全局名称空间里的mm = 90.
	

	return 0;
}

博客主
11249小同学
78
文章

人气教程排行