您的位置:首页 > 科技 > 能源 > 软件外包公司为什么不好_谁有推荐的网址_郑州seo外包服务_seo优化中商品权重主要由什么决定

软件外包公司为什么不好_谁有推荐的网址_郑州seo外包服务_seo优化中商品权重主要由什么决定

2024/12/23 6:43:30 来源:https://blog.csdn.net/2301_80035097/article/details/142669598  浏览:    关键词:软件外包公司为什么不好_谁有推荐的网址_郑州seo外包服务_seo优化中商品权重主要由什么决定
软件外包公司为什么不好_谁有推荐的网址_郑州seo外包服务_seo优化中商品权重主要由什么决定

【C++】单例模式


文章目录

  • 【C++】单例模式
  • 前言
  • 一、静态成员变量
  • 二、静态函数
  • 三、单例模式案例 —— 打印机案例
  • 总结


前言

本篇文章将讲到,静态成员变量,静态函数,以及单例模式案例。


一、静态成员变量

静态成员变量
静态成员变量 :编译阶段就分配了内存
类内声明 、类外初始化
静态成员变量 所有对象都共享同一份数据
静态成员变量也有访问权限, 私有权限类外访问不到

#define  _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;class Person
{
public://1、静态成员变量//静态成员变量 :编译阶段就分配了内存//类内声明 、类外初始化//静态成员变量 所有对象都共享同一份数据static int m_A;
private:static int m_B;
};
int Person::m_A = 100;
int Person::m_B = 100;void test01()
{//1.通过对象进行访问Person p1;cout << p1.m_A << endl;Person p2;p2.m_A = 0;cout << p1.m_A << endl;//2.通过类名进行访问cout << Person::m_A << endl;//静态成员变量也有访问权限, 私有权限类外访问不到//cout << Person::m_B << endl;}int main()
{test01();system("pause");return EXIT_SUCCESS;
}

二、静态函数

所有对象都共享同一份函数
静态成员函数 只可以访问 静态成员变量,不可以访问非静态成员变量
静态成员函数 也是有访问权限的
静态成员函数 有两种访问方式:通过对象 、通过类名
静态成员函数也是有访问权限的

#define  _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;class Person
{
public:static int m_A;int m_c;static void func(){//m_c = 100;//静态成员函数 不能访问非静态成员变量m_A = 100;//静态成员函数 能访问静态成员变量cout << "func的调用" << endl;}private:static int m_B;//私有静态成员变量static void func2(){}
};int Person::m_A = 0;
int Person::m_B = 0;void test02()
{//通过对象Person p1;p1.func();cout << p1.m_A << endl;//通过类名Person::func();//Person::func2();//静态成员函数也是有访问权限的
}int main()
{test02();system("pause");return EXIT_SUCCESS;
}

三、单例模式案例 —— 打印机案例

通过一个类 只能实例化唯一的一个对象
私有化
默认构造
拷贝构造
唯一实例指针

#define  _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
#include<string>class Printer
{
public:int m_Count;static Printer* getInstance(){return printer;}void printText(string text){m_Count++;cout << text << endl;}
private:Printer(){m_Count = 0;}Printer(const Printer& p) {}static Printer* printer;};Printer* Printer::printer = new Printer;void test01()
{Printer* p1 = Printer::getInstance();p1->printText("入职证明");p1->printText("离职证明");p1->printText("加薪申请");p1->printText("旅游申请");cout << "打印机使用次数: " << p1->m_Count << endl;Printer* p2 = Printer::getInstance();p2->printText("调休申请");cout << "打印机使用次数: " << p1->m_Count << endl;
}int main() {//	cout << "mian函数调用" << endl;test01();system("pause");return EXIT_SUCCESS;
}

总结

到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com