目录
3.用一个类的示例来看看=default和=delete的用法
1. =default和=delete

2.=default和=delete在标准库中的应用
Big-Three特殊函数【构造函数,拷贝构造,拷贝赋值,析构函数(不知道为啥叫做大三,明明此时是4
个,应该是Big-Four特殊函数),编译器在用户没有自定义的情况下都会给它加上默认的版本】
Big-Five特殊函数 【多了两个,一个是移动构造(班尼?),还有一个是移动赋值构造,其实此时已经有6
个了,应该是Big-Six特殊函数】
标准库中应用在析构函数中的一个例子就是~duration() =delete;



3.用一个类的示例来看看=default和=delete的用法
=default 只可以用于构造函数,拷贝构造,拷贝赋值,析构函数,移动构造,移动赋值构造
上,不可以用于类的普通的函数上.
=delete 可以用于类的普通的函数上.

4.复习一下-编译器会给一个"空类"默默地做些什么

5.复数中和string中的Big-Three
一般来说有指针成员变量的时候,一般需要重写Big-Three;
一般来说没有指针成员变量的时候,一般不需要重写Big-Three;
标准库中string类中有指针变量,有引用计数,相当复杂,也是需要重写Big-Three的.


6.No-Copy&Private-Copy

7.准标准库boost中的noncopyable

本文探讨了C++中的=default和=delete关键字,它们用于控制类的特殊函数(如构造函数、拷贝构造、赋值运算符等)。讲解了如何在标准库中应用这些特性,并通过类的示例展示了如何使用=default和=delete。同时,讨论了编译器对空类的默认行为,以及在复数和string类中实现Big-Five特殊函数的重要性。还提到了No-Copy和Private-Copy策略,以及boost库中的noncopyable模版。
789





