我希望防止用户将我的类用作自动变量,因此我编写了以下代码:
class A {
private:
~A() = default;
};
int main() {
A a;
}
我原本以为这段代码无法编译,但是使用g++却没有出现错误。
然而,当我将代码改成以下形式时:
class A {
private:
~A(){}
};
int main() {
A a;
}
现在,g++报错说~A()
是私有的,这正是我所期望的。
"=default"析构函数和空析构函数有什么区别?