共享库中单例的多个实例
发布日期:2021-10-16 03:16:09
浏览次数:14
分类:技术文章
本文共 736 字,大约阅读时间需要 2 分钟。
共享库中单例的多个实例
class singleton { public: static singleton* instance() { static singleton p; return &p; } private: singleton(){} }
templateclass CSingleT { public: static T * Instance() { if (!ms_pObject) { ms_pObject = new T; } return ms_pObject; } protected: static T * ms_pObject; } template T * CSingleT ::ms_pObject = NULL;
模板是编译的时候实例化成“真正的类”,即编译生成动态库的过程中,编译器进行了的实例化过程
在动态链接过程中,在其他库没有发现有singleton::instance这个实例(但是事实上,该实例已经存在了),那么就会自己创建一个实例,这样就导致了多个实例。
使用运行时加载的共享库时必须小心。这样的构造严格不是C ++标准的一部分,您必须仔细考虑这样一个过程的语义是什么。
解决方法
#ifdef SINGLETON_EXPORTS#define SINGLETON_API __declspec(dllexport)#else#define SINGLETON_API __declspec(dllimport)#endif
Linux
-rdynamic 暴露了函数名,共享动态符号表
参考网站
转载地址:https://blog.csdn.net/sinat_31964903/article/details/108969269 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年03月24日 08时16分20秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
dtc mysql_DTCC归来-高可用可扩展数据库架构探讨
2019-04-21
java怎样将日期本土化_Java中的日期操作
2019-04-21
java生产者消费者模型到精通_java生产者消费者模型
2019-04-21
python函数代码块以什么开头_Python初体验-开篇 代码全析
2019-04-21
java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc
2019-04-21
php读取大文件某行内容,PHP读取和修改大文件的某行内容_PHP教程
2019-04-21
打印php错误日志,php怎样打印错误日志
2019-04-21
mysql中用户线程作用,mysql用户线程的建立与用户线程的状态源码解析
2019-04-21
php页面引用公共文件,WeiPHP插件模板中快速引入公共模板文件
2019-04-21
php tracy,admin.php
2019-04-21
php访问父类的所有属性,php – 在父类中使用$this仅在子类中显示父类属性
2019-04-21
oracle比较强大的函数,SQL和ORACLE函数比较
2019-04-21
php把整数拆分成数组,数组拆分处理(整数时的处理),该怎么处理
2019-04-21