c++ namespace 笔记

来源:互联网 发布:微信群规制作软件 编辑:程序博客网 时间:2024/04/29 21:20

namespace中文意思是命名空间或者叫名字空间,传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越来越细,全局作用域变得越来越拥挤,每个人都可能使用相同的名字来实现不同的库,于是程序员在合并程序的时候就会可能出现名字的冲突。namespace引入了复杂性,解决了这个问题。namespace允许像类,对象,函数聚集在一个名字下。本质上讲namespace是对全局作用域的细分。

一个简单的例子:

名字空间头文件:

/*********************************purpose:test namespace keyword*********************************/#include<windows.h>namespace Destroyer{int x=1;class CMan{public:CMan(int age){m_age=age;printf("Man age  %d\n",m_age);}~CMan(){}private:int m_age;};class CCriticalSection{public:CCriticalSection(){::InitializeCriticalSection(&m_test);}~CCriticalSection(){::DeleteCriticalSection(&m_test);}public:void Enter(void){::EnterCriticalSection(&m_test);}void Leave(void){::LeaveCriticalSection(&m_test);}private:CRITICAL_SECTION m_test;};}

主程序文件:

// NamespaceTest.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include "test.h"






int _tmain(int argc, _TCHAR* argv[])
{

printf("%d\n",Destroyer::x);
//不同的作用域
{
int x = 2;
printf("局部%d\n",x);
}





{
using namespace Destroyer;
CMan me(100);
}





return 0;
}


0 0
原创粉丝点击