C++_单列模式介绍

2023-12-25 12:36
文章标签 c++ 模式 介绍 单列

本文主要是介绍C++_单列模式介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

  • (1)…什么是单例
    1.只能有一个实例化的对象的类
  • (2).单例有什么用
    1.多线程的线程池的设计
    2.系统中只需要一个窗口时才使用单例(无法重复创建)
    3.一个操作系统只能有一个文件系统
  • (3).单例怎么用
    1.隐藏所有构造函数
    2.静态成员内部调用构造函数实例化
    3.提供一个静态函数来返回静态成员对象

源码

#include<iostream>
#include<string>using namespace std;
//不管用不用,程序开始就会实例化一个对象(饿汉式)
#if 1class single
{
public://调用实例化static single& getinstance(){return s_instance;}
private:single(){}//构造single(int data) :m_data(data){}//初始化单参构造single(const single&){}//拷贝构造int m_data;static single s_instance;//静态成员变量引用};
single single::s_instance(100);//自动调用构造函数
#endif//直到使用时才实例化对象,如果不被调用就不会占用内存(懒汉式)
#if 1
class singletol
{
public://调用实例化static singletol* getinstance(){if (!s_instance){s_instance = new singletol(200);}return s_instance;}
private:singletol(){}//构造singletol(int data) :m_data(data){}//初始化单参构造singletol(const single&){}//拷贝构造int m_data;static singletol* s_instance;//静态成员变量引用};
singletol* singletol::s_instance(NULL);//自动调用构造函数
#endif
void main()
{
//懒汉式(创建地址不一致)singletol *s1 = singletol::getinstance();singletol *s2 = singletol::getinstance();cout << &s1 << " " << &s2 << endl;
//饿汉式(创建地址一致)single &st1 = single::getinstance();single &st2 = single::getinstance();cout << &st1 << " " << &st2 << endl;system("pause");
}

运行结果

00F1F8B8 00F1F8AC
00E10694 00E10694
请按任意键继续. . .

这篇关于C++_单列模式介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/535528

相关文章

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一

SQL Server身份验证模式步骤和示例代码

《SQLServer身份验证模式步骤和示例代码》SQLServer是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQLServer身份验证,本文将详细介绍身份... 目录身份验证方式的概念更改身份验证方式的步骤方法一:使用SQL Server Management S

Java中 instanceof 的用法详细介绍

《Java中instanceof的用法详细介绍》在Java中,instanceof是一个二元运算符(类型比较操作符),用于检查一个对象是否是某个特定类、接口的实例,或者是否是其子类的实例,这篇文章... 目录引言基本语法基本作用1. 检查对象是否是指定类的实例2. 检查对象是否是子类的实例3. 检查对象是否

C++类和对象之初始化列表的使用方式

《C++类和对象之初始化列表的使用方式》:本文主要介绍C++类和对象之初始化列表的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C++初始化列表详解:性能优化与正确实践什么是初始化列表?初始化列表的三大核心作用1. 性能优化:避免不必要的赋值操作2. 强

C++迭代器失效的避坑指南

《C++迭代器失效的避坑指南》在C++中,迭代器(iterator)是一种类似指针的对象,用于遍历STL容器(如vector、list、map等),迭代器失效是指在对容器进行某些操作后... 目录1. 什么是迭代器失效?2. 哪些操作会导致迭代器失效?2.1 vector 的插入操作(push_back,

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli

什么是ReFS 文件系统? ntfs和refs的优缺点区别介绍

《什么是ReFS文件系统?ntfs和refs的优缺点区别介绍》最近有用户在Win11Insider的安装界面中发现,可以使用ReFS来格式化硬盘,这是不是意味着,ReFS有望在未来成为W... 数十年以来,Windows 系统一直将 NTFS 作为「内置硬盘」的默认文件系统。不过近些年来,微软还在研发一款名