//sharedataclass.h
class ShareDataClass
{
private:
ShareDataClass() = default;
ShareDataClass(const ShareDataClass&) = deault;
ShareDataClass &operator=(const ShareDataClass&) = deault;
~ShareDataClass() = deault;
public:
static ShareDataClass *Instance();
void set_cache(const QString & cache){
QMutexLocker locker(&mutex_cache);
m_cache = cache;
};
void get_cache(QString & cache){
QMutexLocker locker(&mutex_cache);
cache = m_cache;
}
private:
QMutex mutex_cache;
static ShareDataClass *m_ShareDataClass;
QString m_cache;
}
// //sharedataclass.cpp
ShareDataClass* ShareDataClass::m_ShareDataClass = Q_NULLPTR;
ShareDataClass* ShareDataClass::Instance()
{
if(m_ShareDataClass == Q_NULLPTR){
m_ShareDataClass = new m_ShareDataClass();
}
return m_ShareDataClass;
}
void ShareDataClass::DeleteShareData()
{
delete m_ShareDataClass;
m_ShareDataClass = Q_NULLPTR;
}
///使用
ShareDataClass::Instance() -> set_cache("sss");
QString cache;
ShareDataClass::Instance() -> get_cache(cache);
C++单例数据共享类实现
于 2021-10-18 17:14:31 首次发布
本文介绍了一个C++实现的单例类ShareDataClass,用于全局缓存数据,包括构造函数重载、静态实例获取与设置、以及线程同步的get_cache和set_cache方法。展示了如何在应用程序中使用和管理共享数据。
摘要由CSDN通过智能技术生成