Item 5: Know what functions C++ silently writes and calls
默认函数
在 C++
中,一个类有八个默认函数:
1 | class Empty { |
调用时机
只有你需要用到这些函数并且你又没有显示的声明这些函数的时候,编译器才会贴心的自动声明相应的函数。
引用成员
如果你打算在一个“内含引用成员”或者“内含const
成员”的类内支持赋值操作,就必须定义自己的默认拷贝赋值操作符。因为 C++
本身不允许引用改指不同的对象,也不允许更改 const
成员。
1 | class Person { |
1 | error: object of type 'Person' cannot be assigned because its copy assignment operator is implicitly deleted |