用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成员。 

转载于:https://www.cnblogs.com/rocky_yi/archive/2011/07/13/2104913.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值