C++中关于静态对象的使用( local static object and global static object)
来源:互联网 发布:富士施乐驱动for mac 编辑:程序博客网 时间:2024/05/21 14:00
原文:http://blog.csdn.net/matrixyy/article/details/50806958
办?》
C++中关于静态对象的使用( local static object and global static object)
2016-03-05 03:29 674人阅读 评论(0)收藏举报
本文章已收录于:
版权声明:本文为博主原创文章,未经博主允许不得转载。
先给出一个列子:
- class ThreadManager {
- public:
- // global singleton
- static ThreadManager &GetInstance(void);
- }
- // global singleton
- ThreadManager &ThreadManager::GetInstance(void) {
- static ThreadManager thread_manager(NUM_THREAD);
- return thread_manager;
- }
上面例子中,我们使用ThreadManager::GetInstance获得static的ThreadManager实例(对象),static类型变量只被初始化一次,所以每次调用ThreadManager::GetInstance都返回同一个对象,不会多次init。
上面这种使用函数的形式返回static对象的方式称之为local static object. 而直接在程序中定义static ThreadManager的方式称之为global static object。使用local static object可以解决所谓的static object调用顺序的问题。
该问题简单描述如下:如果有两个static object x 和 y 。 x里面调用了y,但是如果x编译的时候y还没有被编译,就会出现调用错误。而使用函数返回static的方式,因为只有用到y的时候才会使用函数返回y,这样顺序就确定了。
上面的方式也是global singleton的常用形式
有问题请联系我:zhangtiey@gmail.com
阅读全文
0 0
- C++中关于静态对象的使用( local static object and global static object)
- C++中关于静态对象的使用( local static object and global static object)
- object-c的静态变量(static)
- local static object demo
- Object C中static关键字
- C++ Global(static) Object - Problems
- c++中的局部静态变量(Local Static Object)
- Object C语法中const、extern和static的含义
- non-local static object初始化顺序的不确定性
- 全局对象(global object)
- static与global的使用
- static and global(extern)
- Unity3D - 关于Static静态对象
- 关于C#中的lock object 、lock this 、 lock static object
- 关于static静态变量的灵活使用
- 静态Static(C#)
- delete static object
- C++构造与析构(18) - 静态对象(static object)何时销毁
- 关于免费的seo网站推广方法有哪些?
- oracle 执行 被卡死处理
- 计算机视觉开发必备工具
- easyui 项目ui.js公共方法
- 计算景深的ZEMAX宏 光学软件
- C++中关于静态对象的使用( local static object and global static object)
- 《C++ Primer》读书笔记 第5章:语句
- 脉冲云能做什么
- Mac 下使用chmod修改权限
- Fafu OJ A+B Problem
- 中断与中断向量、硬件中断与软件中断、可屏蔽中断与不可屏蔽中断(转)
- 一文弄懂python装饰器
- 使用python读取txt文件的内容,并删除重复的行数
- 多线程学习