结论:
为驳回编译器自动提供的机能,可将相应的成员函数声明为private并且不予实现。
topic1: =delete的使用
使用规则:
- 禁止类使用默认生成的成员函数,最好设置为private,同时设置为=delete
- 禁止类使用其他类成员函数
场景一:禁止使用编译器生成的默认成员函数
class A
{
public:
A(){
}
~A(){
}
private:
A(const A&) = delete;//拷贝构造函数
A& operator=(const A&) = delete;//赋值运算符
};
场景二:禁止使用其它类成员函数
class A
{
public:
A(){
}
int fun1(int a) = delete;
};
int main(){
A* temp = new A();
temp->fun2(1); //使用错误
return 0;
}