c++命名空间及项目中引用的小技巧

c++命名空间的用法引用:http://blog.sina.com.cn/s/blog_986c99d601010hiv.html

最近在看项目的源代码,看到了这个用命名空间的小技巧,所以写下这篇文章:

游戏中有很多有用的数据结构包括常用链表,高效循环链表,线程等。如果都分布在各个文件中看起来就乱了。

这个时候用命名空间来管理这些数据结构就非常方便了。比如:base.h 这个是命名空间的头文件。其他文件的数据结构定义都放放在namespace BASE的命名空间中。

比如read.h write.h 等。base.h只包含所有放在BASE命名空间的头文件。命名空间是可以扩展了.a.h中 类A在BASE空间下。b.h中类B也可以定义在BASE空间下。

read.h源代码:

#ifndef __READ_H_
#define __READ_H_

namespace BASE
{
	class ReadClass
	{
	public:
		int i;
		ReadClass():i(3){}
		void setI(int i)
		{
			this->i = i;
		}
		void getI()
		{
			printf("readclass  i = %d\n",i);
		}
	};

}
write.h源代码:
#ifndef __WRITE_H_
#define __WRITE_H_
#include <stdio.h>
namespace BASE
{
	class WriteClass
	{
	public:
		int i;
		WriteClass()
		{
			i = 1;
		}
		void setI(int i)
		{
			this->i = i;
		}
		void getI()
		{
			printf("writeclass  i = %d\n",i);
		}
	};
}

#endif
base.h头文件
#ifndef __BASE_H_
#define __BASE_H_
//游戏中所有在BASE命名空间中的数据结构,因为每个数据结构都有独立的.h头文件。所以定义了base.h保护所有BASE数据结构的头文件
//这样很方便游戏数据结构的管理
#include "read.h"
#include "write.h"

#endif
因为游戏也有全局数据GolbalDefine.h 这个全局数据包含base.h头文件引用还有定义一些常量。如下所示
#ifndef __GOLBALDEFINE_H_
#define __GOLBALDEFINE_H_
#include "base.h"
//游戏项目中全局定义

//服务器组定义
//enum AppGroupE
//{
//	GROUP_GATEWAY = 1,	//网关服务器组
//	GROUP_GLOBALSVR,	//公共服务器
//	GROUP_MAPSVR,		//场景服务器
//	GROUP_COPYSVR,		//副本服务器
//	GROUP_SAVESVR,		//数据库保存服务器
//	GROUP_DISTRIBUTOR,	//负载连接分发服务器
//	GROUP_EC,			//EC服务器
//};


#endif
所以这些就很方面定义和引用数据了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值