最全C++(6)——static和单例模式_c+,阿里内部C C++笔记火爆IT圈

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

int _month;
int _day;

};
class students
{
public:
students(const char *name, int age, char sex, int y, int m, int d)
:stu(y, m, d)
{
strcpy(_name, name);
_age = age;
_sex = sex;
_count++;
}
static void show()
{
cout << “dsa” << _count << endl;
}
private:
char _name[20];
int _age;
char _sex;
Sdata stu;
static int _count;
};
int students::_count = 0;
int main()
{
students mystu(“wyl”, 21, ‘L’, 1999, 5, 18);
students mystu1(“wyl”, 21, ‘L’, 1999, 5, 18);
students mystu2(“wyl”, 21, ‘L’, 1999, 5, 18);
students mystu3(“wyl”, 21, ‘L’, 1999, 5, 18);
students mystu4(“wyl”, 21, ‘L’, 1999, 5, 18);

students::show();
getchar();
return 0;

}


### 单例模式


单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例。  
 让类只能实例化一个对象  
 1、屏蔽生成对象的的接口  
 构造函数放在private  
 2、提供接口来生成唯一对象  
 1、不能生成类类型的方式返回  
 2、static  
 单例模式有两种模式:  
 //懒汉模式:对象使用的时候才生成唯一对象  
 //饿汉模式:对象在使用之前已经生成  
 说的简单一点就是,一个类只能实例化一个对象  
 实现思路:把构造函数设计为私有函数,然后由静态成员方法调用



//懒汉模式
class Rector
{
public:
//接口生成唯一对象并返回出去
//一个接口的目的是为了生成对象的,接口一般都为静态的
static Rector* getInstance(const char *name, int age, bool sex)
{
if (pre == NULL)
{
pre = new Rector(name, age, sex);
}
return pre;
}

private:
Rector(const char *name, int age, bool sex)
{
mname = new char[strlen(name) + 1];
strcpy(mname, name);
mage = age;
msex = sex;
}
char *mname;
int mage;
bool msex;
static Rector *pre; //标识唯一的的对象是否生成
};
Rector* Rector::pre = NULL;

int main()
{
Rector * pr1 = Rector::getInstance(“ahadsa”, 5, true);
Rector * pr2 = Rector::getInstance(“wyl”, 6, true);
Rector * pr3 = Rector::getInstance(“wy222l”, 7, true);
return 0;
}


我们会发现,放第一次调用之后,其他调用皆无任何作用。



//饿汉模式
static Rector* getInstance(const char *name, int age, bool sex)
{
return pre;
}

private:
Rector(const char *name = NULL, int age = 19, bool sex = false)
{
mname = new char[strlen(name) + 1];

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新*

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值