This commit is contained in:
johnwdjiang 2020-10-30 11:47:34 +08:00
parent 9dcc2f55d5
commit 0bc5ef3b26
2 changed files with 4 additions and 4 deletions

View File

@ -1,4 +1,4 @@
## Ite 17:理解特殊成员函数函数的生成 ## Ite 17:理解特殊成员函数的生成
条款 17:理解特殊成员函数函数的生成 条款 17:理解特殊成员函数函数的生成
在C++术语中特殊成员函数是指C++自己生成的函数。C++98有四个默认构造函数函数析构函数拷贝构造函数拷贝赋值运算符。这些函数仅在需要的时候才生成比如某个代码使用它们但是它们没有在类中声明。默认构造函数仅在类完全没有构造函数的时候才生成。防止编译器为某个类生成构造函数但是你希望那个构造函数有参数生成的特殊成员函数是隐式public且inline除非该类是继承自某个具有虚函数的类否则生成的析构函数是非虚的。 在C++术语中特殊成员函数是指C++自己生成的函数。C++98有四个默认构造函数函数析构函数拷贝构造函数拷贝赋值运算符。这些函数仅在需要的时候才生成比如某个代码使用它们但是它们没有在类中声明。默认构造函数仅在类完全没有构造函数的时候才生成。防止编译器为某个类生成构造函数但是你希望那个构造函数有参数生成的特殊成员函数是隐式public且inline除非该类是继承自某个具有虚函数的类否则生成的析构函数是非虚的。

View File

@ -6,8 +6,8 @@
应该在创建对象时用{}而不是()吗为什么alias声明比typedef好constexpr和const有什么不同常量成员函数和线程安全有什么关系这个列表越列越多。 应该在创建对象时用{}而不是()吗为什么alias声明比typedef好constexpr和const有什么不同常量成员函数和线程安全有什么关系这个列表越列越多。
这章将会逐个回答这些问题。 这章将会逐个回答这些问题。
## Item 5:Distinguish between () and {} when creating objects ## Item 7:Distinguish between () and {} when creating objects
条款:区别使用()和{}创建对象 条款:区别使用()和{}创建对象
从不同的角度看C++11初始化对象的语法选择既丰富得让人尴尬又混乱得让人糊涂。一般来说初始化值要用()或者{}括起来或者放到"="的右边: 从不同的角度看C++11初始化对象的语法选择既丰富得让人尴尬又混乱得让人糊涂。一般来说初始化值要用()或者{}括起来或者放到"="的右边:
````cpp ````cpp