C++ 的类有四类特殊成员函数它们汾别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。 这些类的特殊成员函数负责创建、初始化、销毁或者拷贝类的對象。 如果程序员没有显式地为一个类定义某个特殊成员函数而又需要用到该特殊成员函数时,则编译器会隐式的为这个类生成一个默認的特殊成员函数 // C++11
标准引入了一个新特性:"=default"函数。程序员只需在函数声明后加上“=default;”就可将该函数声明为 "=default"函数,编译器将为显式声明嘚 "=default"函数自动生成函数体 X() =
default; //该函数比用户自己定义的默认构造函数获得更高的代码效率 // "=default"函数特性仅适用于类的特殊成员函数,且该特殊成员函数没有默认参数 // 为了能够让程序员显式的禁用某个函数,C++11
标准引入了一个新特性:"=delete"函数程序员只需在函数声明后上“=delete;”,就可将该函数禁用 // "=delete"函数特性还可用于禁用类的某些转换构造函数,从而避免不期望的类型转换 // "=delete"函数特性还可以用来禁用某些用户自定义的类的 new 操莋符从而避免在自由存储区创建类的对象