单例模式析构时持久化

cpp 复制代码
#include <iostream>  
#include <fstream>  
  
class Singleton {  
private:  
    // 私有构造函数和拷贝构造函数/赋值运算符,确保单例  
    Singleton() {  
        // 构造函数中的初始化代码  
        std::cout << "Singleton created\n";  
    }  
    ~Singleton() {  
        // 析构函数中的持久化代码  
        std::ofstream file("singleton_data.txt");  
        if (file.is_open()) {  
            file << "Singleton destroyed, persisting data...\n";  
            // 在这里添加你的持久化逻辑  
            file.close();  
        } else {  
            std::cerr << "Unable to open file for writing\n";  
        }  
        std::cout << "Singleton destroyed\n";  
    }  
    Singleton(const Singleton&) = delete;  
    Singleton& operator=(const Singleton&) = delete;  
  
public:  
    // 获取单例实例的静态方法  
    static Singleton& getInstance() {  
        static Singleton instance;  
        return instance;  
    }  
  
    // ... 其他成员函数 ...  
};  
  
int main() {  
    Singleton& s = Singleton::getInstance();  
    // 使用单例对象...  
  
    // 当main函数返回时,程序结束,全局对象和单例对象开始析构  
    // Singleton的析构函数会被调用,进行持久化操作  
    return 0;  
}

在这个示例中,我们定义了一个名为Singleton的单例类。在其析构函数中,我们打开了一个文件,并写入了一条消息来模拟持久化操作。当然,在实际应用中,你可能需要执行更复杂的持久化逻辑,如将数据写入数据库或序列化对象到磁盘等。

相关推荐
用户434309241697 小时前
Day29:图片上传 + 存数据库(Multer + MySQL)
数据库·后端
lolo大魔王8 小时前
MongoDB 索引机制详解:单字段索引、复合索引、唯一索引与性能优化
数据库·mongodb
newnazi8 小时前
RedHat10 安装MS SQL Server2025
linux·服务器·数据库
KaMeidebaby8 小时前
卡梅德生物技术快报|单 B 细胞抗体制备:流程优化、表达系统适配与性能数据
前端·数据库·其他·百度·新浪微博
2301_783848658 小时前
mysql数据库迁移到云平台流程_使用数据传输服务DTS工具
jvm·数据库·python
爱喝水的鱼丶8 小时前
SAP-ABAP:ABAP函数 NUMBER_GET_NEXT 详解:从编号范围对象获取下一个编号
运维·数据库·学习·sap·abap
颖火虫盟主9 小时前
Claude Code Hook 系统详解与 Hello World 实操
前端·网络·数据库
gQ85v10Db9 小时前
Redis 分布式锁进阶第三十四篇
数据库·redis·分布式
June`9 小时前
redis项目之命令解析器
数据库·c++·redis
老纪9 小时前
如何解决OUI图形界面无法调用_xhost与DISPLAY变量设置
jvm·数据库·python