用static实现类的多个实例共享一个变量
2011-07-13 09:34
204 查看
首先请看《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成员。
总结一下需要做的几件事:
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成员。
相关文章推荐
- java中如何理解多个对象共享同一个静态成员变量(多个实例的static变量会共享同一块内存区域)
- 一个类的static变量在其所有实例化对象上是共享的
- Linux 驱动学习笔记05--字符驱动实例,实现一个共享内存设备的驱动
- 当调用的DLL中有全局变量时调用它的多个实例是否共享同一个全局变量
- 通过调用类变量,实现全局变量共享(类变量和实例变量)
- 当调用的DLL中有全局变量时调用它的多个实例是否共享同一个全局变量
- 当调用的DLL中有全局变量时调用它的多个实例是否共享同一个全局变量?????
- servlet共享变量实现计数器(servlet应用实例)
- 继承Thread类与实现Runnable接口创建线程对于类实例变量共享的区别
- 进程地址空间的共享(可以实现一个程序只有一个实例运行)
- Spring Boot集成Spring Data Reids和Spring Session实现Session共享(多个不同的应用共用一个Redis实例)
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- AppDelegate相关,实现全局变量,一个类一个实例
- 一个基于socket的资源共享平台的实现(二)
- 用一个实例讲解数据增量抽取的模拟实现
- J2ME应用实例——一个简单的计算器实现(附源代码)
- 本文实例讲述了AngularJS+bootstrap实现动态选择商品功能。分享给大家供大家参考,具体如下: 项目中后台一个商品库,新建活动时动态选择所需商品
- 弹出框(tooltip)模态modal框的实现原理及Jquery的一个实现实例
- vue实现一个移动端屏蔽滑动的遮罩层实例
- 如何打印一个类的属性(例如textview里的控件等,基于oc里没有绝对的私有变量这一规则实现)