C++11 关键字default和delete
1、 =default 和=delete 概述 任何事物的出现都必然有着其出现的理由,伴随着每一个新的概念产生都会带来一系列的便利和价值。C++在不断的演变与发展,与此同时,伴随着许多新的特性和功能产生。=default、=delete 是C++11的新特性,分别为:显式缺省(告知编译器生成函数默认的缺省版本)和显式删除(告知编译器不生成函数默认的缺省版本)。C++11中引进这两种新特性的目的是为了增强对“类默认函数的控制”,从而让程序员更加精准地去控制默认版本的函数。 其具体的功能和使用方法下面将一一道来。 2、 类与默认函数 在讲解关键字 default和delete 之前,先对类和类的默认函数作下描述与说明,从而加深对这两个关键字的理解与认知。既要知其然,也要知其所以然。C++中,当我们设计与编写一个类时,若不显著写明,则类会默认为我们提供如下几个函数: 1 构造函数 2 析构函数 3 拷贝构造函数 4 拷贝赋值函数(operator=) 5 移动构造函数 以及全局的默认操作符函数 1 operator, 2 operator & 3 operator && 4 operator * 5 operator-> 6 operator->* 7 operator new 8 operator delete 注:若我们在类中实现了这些版本之后,编译器便不会生成其对应的默认函数版本