函数=delete
函数=delete 表明虽然声明了此函数但是不希望使用它,可以用在任何函数上面。
class oneClass
{
public:
oneClass() = delete;//禁止创建默认构造函数
oneClass(const oneClass &) = delete;//禁止拷贝
oneClass & operator = (const oneClass &) = delete;//禁止赋值
};
如果析构函数 = delete,不能调用析构函数,这时候编译器不允许在栈内存创建对象,因为当对象生存期结束时无法调用析构函数释放对象,编译器不允许在栈内存创建不能释放的对象。这时候可以在堆内存创建对象,但不能释放对象。
