当前位置: 首页 > news >正文

开业时网站可以做哪些活动吗包装模板网站

开业时网站可以做哪些活动吗,包装模板网站,佛山建设小学网站,一个vps可以建多少网站参考#xff1a;5. 单例模式#xff08;Singleton#xff09; (yuque.com) 1、什么是单例模式 保证一个类只有一个实例#xff0c;并提供一个访问该实例的全局节点#xff1b; 2、什么情况下需要单例模式 某个类的对象在软件运行之初就创建#xff0c;并且在软件的很…参考5. 单例模式Singleton (yuque.com) 1、什么是单例模式 保证一个类只有一个实例并提供一个访问该实例的全局节点 2、什么情况下需要单例模式 某个类的对象在软件运行之初就创建并且在软件的很多地方都需要读写这个类的信息使用单例模式的话类对象就只要软件启动的时候创建一次软件停止的时候释放 3、优点 1保证类只有一个实列 2有一个指向该实例的全局节点 4、缺点 暂没经验 5、线程安全的懒汉单例模式 Singleton.h #ifndef SINGLETON_H_ #define SINGLETON_H_#include iostream #include string #include mutex// 配置类 class SingletonConfig {public:static SingletonConfig* GetInstance() {if (instance_ nullptr) {// 加锁保证多个线程并发调用getInstance()时只会创建一个实例m_mutex_.lock();if (instance_ nullptr) {instance_ new SingletonConfig();}m_mutex_.unlock();}return instance_;}private:SingletonConfig() {}static SingletonConfig* instance_;static std::mutex m_mutex_; };// 管理类 class SingletonManager {public:static SingletonManager* GetInstance() {if (instance_ nullptr) {// 加锁保证多个线程并发调用getInstance()时只会创建一个实例m_mutex_.lock();if (instance_ nullptr) {instance_ new SingletonManager();}m_mutex_.unlock();}return instance_;}private:SingletonManager() {}static SingletonManager* instance_;static std::mutex m_mutex_; };#endif // SINGLETON_H_Singleton.cpp #include Singleton.h// 静态变量instance初始化不要放在头文件中, 如果多个文件包含singleton.h会出现重复定义问题 SingletonConfig* SingletonConfig::instance_ nullptr; std::mutex SingletonConfig::m_mutex_;SingletonManager* SingletonManager::instance_ nullptr; std::mutex SingletonManager::m_mutex_;main.cpp #include iostream #include Singleton.hint main() {SingletonConfig *s1 SingletonConfig::GetInstance();SingletonConfig *s2 SingletonConfig::GetInstance();std::cout s1地址: s1 std::endl;std::cout s2地址: s2 std::endl;SingletonManager *s3 SingletonManager::GetInstance();SingletonManager *s4 SingletonManager::GetInstance();std::cout s3地址: s3 std::endl;std::cout s4地址: s4 std::endl;return 0; }编译运行 $ g -g main.cpp Singleton.cpp -stdc11 -o singleton $ ./singleton s1地址: 0x5594b0f12e70 s2地址: 0x5594b0f12e70 s3地址: 0x5594b0f132a0 s4地址: 0x5594b0f132a0此单例模式代码是比较常规的使用和理解起来也方便但是如果有多个类需要使用单例模式的话那么每个类都需要定义一份单例类代码这种情况下进一步优化的话可以定义单例类模板 6、升级版线程安全的懒汉单例类模板 Config.h #ifndef CONFIG_H #define CONFIG_H#include iostream #include Singleton.hstruct stuInfo{int index;std::string name;int age; };class Config { public:Config();~Config();int getIndex() { return m_stuInfo.index; }std::string getName() { return m_stuInfo.name; }int getAge() { return m_stuInfo.age; }void init();void loadConfig();void syncConfig();private:stuInfo m_stuInfo; };#define SingletonStuInfo SingletonConfig::GetInstance()#endif // CONFIG_HSingleton.h #ifndef SINGLETON_H_ #define SINGLETON_H_#include iostream #include string #include mutextemplate class T class Singleton {public:static T* GetInstance();private:Singleton() {}static T* m_instance;static std::mutex m_mutex; };templateclass T T* SingletonT::m_instance nullptr; templateclass T std::mutex SingletonT::m_mutex;template class T T* SingletonT::GetInstance() {if (m_instance nullptr) {// 加锁保证多个线程并发调用getInstance()时只会创建一个实例m_mutex.lock();if (m_instance nullptr) {m_instance new T();}m_mutex.unlock();}return m_instance; }#endif // SINGLETON_H_Config.cpp #include Config.hConfig::Config() {}Config::~Config() {}void Config::init() {m_stuInfo.index 0;m_stuInfo.name zhangsan;m_stuInfo.age 20; }void Config::loadConfig() {}void Config::syncConfig() {} main.cpp #include iostream #include Singleton.h #include Config.hint main() {SingletonStuInfo-init();std::cout index: SingletonStuInfo-getIndex() std::endl;std::cout name: SingletonStuInfo-getName() std::endl;std::cout age: SingletonStuInfo-getAge() std::endl;return 0; }编译运行 $ g -g main.cpp Singleton.cpp Config.cpp -stdc11 -o singleton $ ./singleton index: 0 name: zhangsan age: 20
http://www.zqtcl.cn/news/192918/

相关文章:

  • 做搬运的话哪个网站好网站模板建站
  • 建设个人信息网站wordpress 用户权限
  • 网站不显示域名解析错误怎么办公益网站设计
  • 怎么上传网站图片的链接手表网站排行榜
  • 网站推广方法100种百度排名规则
  • 上海专业网站建设公司站霸网络萝岗区网站建设推广
  • 做微商网站的公司永久免费crm管理系统
  • 网站开发的环境专业的建设网站
  • 公司网站建设知识注册网站备案
  • 营销型网站建设申请域名在域名做网站
  • 电商网站设计公司立找亿企邦山东德州网站建设哪家最好
  • 免费自建网站工具网站建设公司那个好
  • wordpress集成环境搭建短视频优化
  • 做网站一般把宽度做多少中国企业报集团官网
  • 什么软件可以建网站网站建设应该计入什么费用
  • 网站制作 手机版重庆网站建设mswzjs
  • 网站建设犀牛云品牌建设方案和思路
  • 网络管理系统的管理软件抖音优化推广
  • 昆山市有没有做网站设计的交互设计研究生
  • 本地网站asp iiswordpress 感染支付宝
  • 成都最专业做网站的wordpress升级500
  • 做网站首页图的规格网站建设的市场分析
  • a032网站模版自己建立网站怎么建
  • wordpress.商品厦门做网站优化价格
  • 学校网站建设源码视频生成链接网站
  • 江苏建设工程招投标网站wordpress 全部tags
  • 十堰网站建设有哪些公司wordpress删除摘要
  • 网站的功能和特色网页设计公司哪个济南兴田德润实惠吗
  • 汕头建站模板泰安建设银行网站
  • 服装平台网站有哪些网站开发 零基础