关键字delete、default

        目录

1、default关键字

2、delete 关键字 


1、default关键字

default 关键字的作用:强制生成某个默认函数。

应用场景手动实现某个默认函数以后,使用default关键字自动生成默认构造函数

案例:当我们手动实现了某个构造函数时,编译器就不会自动生成构造函数了。如果我们觉得再去写一遍默认构造太麻烦,我们可以使用default 关键字强制生成一个默认构造函数。

class Person{
public:
    Person() = default;        // 强制生成默认构造函数
    Persson(int age):_age(age){}
private:
    int _age;
}

 

2、delete 关键字 

delete 关键字的作用禁止生成某个默认函数

应用场景单例模式、禁止对象拷贝、禁止对象赋值

单例模式下,为了保证对象的唯一性,我们需要避免对象被拷贝或者赋值,即禁止编译器生成拷贝构造,当前场景下我们可以使用delete关键字。

class Person {
private:
	Person(Person& p) = delete;

    // Person& operator=(Person& p) {
	// 	Person tmp(p);        // 调用拷贝构造失败
        // ...
	// }
};

注意:delete关键字不光是禁止了类外的拷贝构造,同时也禁止了类内的拷贝构造。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值