目录
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