C++:单例模式

devtools/2024/12/30 22:52:08/
  • 创建自己的对象,同时确保对象的唯一性。

  • 单例类只能有一个实例☞静态成员static☞静态成员 必须类外初始化

  • 单例类必须自己创建自己的唯一实例

  • 单例类必须给所有其他对象提供这一实例

  • 静态成员类内部可以访问

  1.  构造函数私有化☞构造函数私有外部不能创建,但是内部可以创建
  2. 内部需要封装一个唯一实例的指针
  3. 针对成员变量_instance设计静态成员函数GetInstance/Setinstance

Singleton.h#pragma once
#include<string>
using namespace std;
class Singleton
{
public:static Singleton* GetInstance();void SetName(const char* str);string GetName();
private:Singleton();//构造函数static Singleton* _instance;//唯一对象的指针string name;//针对name有一套set get函数考❗
};
Singleton.cpp#include "Singleton.h"//类外构造函数,成员函数初始化
Singleton::Singleton() {
}//成员变量初始化,不用加上static
Singleton* Singleton::_instance = nullptr; //考❗//定义Getinstance 类外实现不用再加上static
Singleton* Singleton::GetInstance() {if (_instance == nullptr)_instance = new Singleton; //类的内部创建考❗return _instance;
}//setname定义
void Singleton::SetName(const char* str)
{name = str;
}//Getname定义
string Singleton::GetName()
{return name;
}
main.cpp#include<iostream>
#include"Singleton.h"void fun()
{Singleton* p = Singleton::GetInstance();p->SetName("Alice");
}
int main()
{Singleton* q = Singleton::GetInstance();//考❗q->SetName("Bob");fun();cout << q->GetName() << endl;
}

http://www.ppmy.cn/devtools/146399.html

相关文章

javaEE

1.maven 1.1 maven是什么&#xff1f; maven 是一个软件全周期管理工具。 1.2 maven vs npm 1.2.1 依赖&#xff08;dependencies&#xff09; 项目中需要对象 常规动作&#xff1a; 引入依赖 1.2.1.1 npm 1.2.1.2 maven 依赖坐标 1.3 maven配置安装 1.3.1 下载maven …

HDFS与HBase有什么关系?

1 、 HDFS 文件存储系统和 HBase 分布式数据库 HDFS 是 Hadoop 分布式文件系统。 HBase 的数据通常存储在 HDFS 上。 HDFS 为 HBase 提供了高可靠性的底层存储支持。 Hbase 是 Hadoop database ,即 Hadoop 数据库。它是一个适合于非结构化数据存储的数据库, HBase 基于列的…

LoRaWAN协议在基于低地球轨道的大规模机器类通信架构中的无缝集成

目录 论文信息文档总结 论文信息 中英文标题 英文标题&#xff1a;Seamless Integration of the LoRaWAN Protocol in a LEO-Based mMTC Architecture中文标题&#xff1a;LoRaWAN协议在基于低地球轨道的大规模机器类通信架构中的无缝集成 作者信息 Andrea Novero&#xff08;…

《多模态融合:开启智能新时代的钥匙》

在当今数字化时代&#xff0c;多模态数据融合已成为人工智能领域的热门话题。从智能手机、智能穿戴设备到自动驾驶汽车&#xff0c;我们身边的各种智能产品都在不断利用多模态数据融合技术&#xff0c;以提供更加丰富、准确和智能的服务。 多模态融合的重要性 多模态数据融合…

怎样进行高效的金属板材矫平工艺优化?

在金属板材加工领域&#xff0c;矫平工艺是确保产品平面精度和质量的关键步骤。玛哈特矫平机以其卓越的性能和智能化技术&#xff0c;为金属板材矫平工艺提供了高效优化的解决方案。以下是玛哈特矫平机的几个关键特点&#xff0c;展示了如何实现高效的金属板材矫平工艺优化&…

数据分析-54-时间序列分析之滑动窗口处理及连续触发的判断逻辑

文章目录 1 窗口操作1.1 滑动窗口思想1.2 函数df.rolling1.3 滚动窗口1.4 扩展窗口2 连续触发判断2.1 场景示例2.2 封装函数3 按周聚合数据4 参考附录1 窗口操作 窗口函数用于执行一系列统计计算,如移动平均、累积求和等。这些计算通常基于数据的一个固定大小的窗口,并且可以…

Blazor开发中注册功能设计研究

Blazor开发中注册功能设计是为了用户可以高效、安全地完成注册并登录系统。以高效和用户友好为目标,结合校验、注册和登录功能,为用户提供一个完整的账户管理流程,同时保障系统安全性和稳定性。注册页面应该结构清晰、布局合理,既满足基本注册功能,又通过响应式设计与视觉…

微信小程序:解决顶部被遮挡的问题

你们好&#xff0c;我是金金金。 场景 发布了一个小程序&#xff0c;测试过程当中&#xff0c;发现问题&#xff1a;顶部的轮播图被IOS的灵动岛给挡住了 好家伙&#xff0c;确实不太美观昂~ 解决 解决微信小程序元素内容被顶部栏遮挡的问题也非常简单 uniapp提供了一个同步接口…