用static实现类的多个实例共享一个变量

首先请看《C++ primer》12.6节,内容不多,15分钟可以看完。 

总结一下需要做的几件事:

1、在.h文件中定义static成员,如:static int test_num;

2、在.cpp文件中初始化这个成员,如: int class_name::test_num = 0;

这样你就可以在类中像使用普通成员一样使用static成员了。

 ====================我是华丽丽的分割线===================

对于在初始化时需要做处理的static成员(如需要向hashmap的成员填入数据),一种可选的办法是在类的构造和析构函数中做初始化和销毁的工作。

维护一个static变量用于记录当前类的实例对象个数。注意:如果实现了类的copy和operater=,记得在这两个地方将计数器加1 

在构造函数中检查成员是否已经完成初始化以及相关操作,若没有则进行初始化和相关操作。同时将计数器加1.

在析构函数中检查计数器是否等于0,若等于,则销毁对应的static成员。 

posted on 2011-07-13 09:34  Rocky_Yi  阅读(1091)  评论(0编辑  收藏  举报

导航