Skip to content

第七章-为改变思考方式而改变

回到目录

7.1 指针空值—nullptr

nullptr是一个编译时期的常量,它的名字是一个编译时期的关键字,能够为编译器所识别。而(void)0只是一个强制转换表达式,其返回的也是一个void指针类型。

7.2 默认函数的控制

7.2.1 类与默认函数

编译器会默认帮助程序员生成一些默认函数, - 构造函数 - 拷贝构造函数 - 拷贝赋值函数(operator=) - 移动构造函数 - 移动拷贝函数 - 析构函数 此外,C++编译器还会为以下这些自定义类型提供全局默认操作符函数: - operator, - operator & - operator && - operator * - operator -> - operator ->* - operator new - operator delete

一旦程序员实现了这些函数的自定义版本,则编译器不会再为该类自动生成默认版本

C++11提供了关键字=default用来显式指定编译器生成该函数的默认版本,提供了=delete显式指定编译器不生成函数的缺省版本

7.2.1 default与delete

显式缺省函数与显式删除函数