c++ namespace 笔记

本文介绍了C++中的命名空间(namespace)概念及其用法。通过一个具体的示例程序,展示了如何使用命名空间来避免名称冲突,以及如何在不同作用域内引用命名空间内的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值