c++11新特性:default,delete

写在前面

c++11的新特性: default和delete

主要内容

default

可以对具有合成版本的成员函数使用=default显示的要求编译器生成合成的版本,当在类内修饰从成员的声明的时候,合成函数将隐式的声明为内联函数。如果不需要合成的是内联的只需要在类定义的外部使用default进行声明。

阻止拷贝 delete

虽然 大多数类都应该定义(显示的或者是隐式的)拷贝构造函数或者是拷贝赋值运算符,但是对于某些类来说这些操作将没有任何的意义。但是即便我们没有定义这些函数编译器也会为我们提供默认的版本,此时需要采用某种机制阻止拷贝或者复制。

在c++11当中我们可以通过将拷贝构造函数和拷贝赋值操作符定义为删除的函数来阻止拷贝。
删除函数是:我们虽然声明了这些函数但是不能以任何的方式来使用他们。在函数参数列表后面加上=delete指出我们希望它被定义为删除的。通过这样的方式告诉编译器我们不需要它所提供的默认的拷贝函数。

任意的函数都可以指定=delete。

析构函数不能是删除的成员,因为析构函数被删除,就无法销毁此类型的对象了。

猜你喜欢

转载自blog.csdn.net/zhc_24/article/details/82184277