=delete的使用
1、禁止类使用默认生成的成员函数
class A{
public:
A(){}
~A(){}
private:
A(const A&) = delete;//拷贝构造函数
A& operator=(const A&) = delete;//赋值运算符
A* operator&() = delete;//取值运算符
const A* operator&()const = delete;//取址运算符 const
}
2、禁止类使用其他类成员函数
#include <iostream>
using namespace std;
class A{
public:
A(){}
int fun1(int a){return a;}
int fun2(int a) = delete;
};
int main(){
A* temp = new A();
cout << temp->fun1(1) << endl; //正确
//temp->fun2(1); //使用错误
return 0;
}