C++新特性探究(三):=default、=delete

一. =default

  C++的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。
  这些类的特殊成员函数负责创建、初始化、销毁、或者拷贝类的对象。
  如果程序员没有显示地为一个类定义某个特殊的成员函数,而又需要用到该特殊成员函数时,则编译器会隐式的为这个类生成一个默认的特殊成员函数。

例:
在这里插入图片描述
附上例代码:

//小问学编程
#include<iostream>
using namespace std;

class A
{
    
    
public:
    A()=default;
    A(int x):_x(x)
    {
    
    }
private:
    int _x;
};

int main()
{
    
    
    A a;
    return 0;
}

二. =delete

  为了能够让程序员显式的禁用某个函数,C++11标准引入了一个新特性:“=delete”函数。程序只需在函数声明后加上“=delete;”,就可将该函数禁用。
在这里插入图片描述
规则:
(1) 必须在函数第一次声明的时候将其声明为 deleted 函数
(2) 不同于default,delete没有限制为特殊成员函数才能使用delete

猜你喜欢

转载自blog.csdn.net/weixin_43297891/article/details/113486421
今日推荐