C++动态库单例模式与exe保留同一份单例

解决方法#

  1. 将单例对象初始化放入.cpp文件

示例#

Fun.h#

#ifdef FUN_EXPORTS
#define FUN_API __declspec(dllexport)
#else
#define FUN_API __declspec(dllimport)
#endif

#include <iostream>

class FUN_API Fun {
public:
	static Fun& instance();

	void showThis() {
		std::cout << this << std::endl;
	}
};

Fun.cpp#

#include "pch.h"
#include "Fun.h"

Fun& Fun::instance()
{
	static Fun fun;
	return fun;
}

测试#

#include <iostream>

#include "Fun.h"

int main()
{
    Fun::instance().showThis();
    std::cout << &Fun::instance() << std::endl;

    std::cout << "End\n";
}

结果#

在这里插入图片描述

作者:Esofar

出处:https://www.cnblogs.com/WindSnowLi/p/16998147.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   WindSnowLi  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示