单例模式析构时持久化

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

相关推荐
数据皮皮侠41 分钟前
最新上市公司业绩说明会文本数据(2017.02-2025.08)
大数据·数据库·人工智能·笔记·物联网·小程序·区块链
小云数据库服务专线1 小时前
GaussDB数据库架构师修炼(十六) 如何选择磁盘
数据库·数据库架构·gaussdb
码出财富2 小时前
SQL语法大全指南
数据库·mysql·oracle
异世界贤狼转生码农4 小时前
MongoDB Windows 系统实战手册:从配置到数据处理入门
数据库·mongodb
QuZhengRong4 小时前
【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
android·数据库·excel
码农阿豪4 小时前
Windows从零到一安装KingbaseES数据库及使用ksql工具连接全指南
数据库·windows
时序数据说10 小时前
时序数据库市场前景分析
大数据·数据库·物联网·开源·时序数据库
听雪楼主.13 小时前
Oracle Undo Tablespace 使用率暴涨案例分析
数据库·oracle·架构
我科绝伦(Huanhuan Zhou)13 小时前
KINGBASE集群日常维护管理命令总结
数据库·database
妖灵翎幺13 小时前
Java应届生求职八股(2)---Mysql篇
数据库·mysql