defaulted函数
- 类的特殊函数声明时加上“=default”,会将该函数声明为defaulted函数。
- 对于defaulted函数,编译器自动为其生成函数体
- defaulted函数,仅适用于类的特殊成员函数,且函数没有默认参数
- defaulted函数,可在类体内定义,也可在类体外定义。
- 一般来讲,编译器自动生成的特殊成员函数,执行效率高。
class Linduo
{
public:
Linduo(int x);
Linduo() =default;
}
delete
- 类的特殊函数声明时加上“=delete",可以指定编译器,不产生默认的特殊成员函数(如构造函数,拷贝构造函数)
class Linduo
{
private:
// 编译器不会生成默认的拷贝构造函数
Foo(const Foo&) =delete;
}