Update item17.md

This commit is contained in:
猫耳堀川雷鼓 2021-02-15 17:38:04 +08:00 committed by GitHub
parent f1c2cfb936
commit c478c42044
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,7 +3,7 @@
在C++术语中,**特殊成员函数**是指C++自己生成的函数。C++98有四个默认构造函数析构函数拷贝构造函数拷贝赋值运算符。当然这有些细则。这些函数仅在需要的时候才生成比如某个代码使用它们但是它们没有在类中明确声明。默认构造函数仅在类完全没有构造函数的时候才生成。防止编译器为某个类生成构造函数但是你希望那个构造函数有参数生成的特殊成员函数是隐式public且`inline`,它们是非虚的,除非相关函数是在派生类中的析构函数,派生类继承了有虚析构函数的基类。在这种情况下,编译器为派生类生成的析构函数是虚的。
但是你早就知道这些了。好吧好吧都说古老的历史美索不达米亚商朝FORTRANC++98。但是时代改变了C++生成特殊成员的规则也改变了。要留意这些新规则,因为这些小事对C++高效编程和知道什么时候编译器会悄悄地向你的类中添加成员函数同样重要。
但是你早就知道这些了。好吧好吧都说古老的历史美索不达米亚商朝FORTRANC++98。但是时代改变了C++生成特殊成员的规则也改变了。要留意这些新规则,知道什么时候编译器会悄悄地向你的类中添加成员函数因为没有什么比这件事对C++高效编程更重要。
C++11特殊成员函数俱乐部迎来了两位新会员移动构造函数和移动赋值运算符。它们的签名是
```cpp