我一直在使用越来越多的C++ 11,我遇到了一些我在任何地方都找不到的东西.当我们从基指针中删除派生类时,我们需要有虚拟析构函数; 但有时父析构函数需要"纯粹",这对C++来说是不可能的.那么,我的问题是可以默认用于虚拟析构函数吗?我已经尝试了它并且它有效,但我不知道它是否安全,因为互联网上没有任何关于它的信息.
编辑:澄清问题,我在谈论使用 virtual ~Class() = default;
是虚拟~Base()=默认值; 法律
是.它是.
如果您想拥有纯虚拟析构函数,可以执行以下操作:
class Base
{
public;
virtual ~Base() = 0;
};
Run Code Online (Sandbox Code Playgroud)
并提供实施:
Base::~Base() = default; // or any other implementation
Run Code Online (Sandbox Code Playgroud)
Base虚拟纯粹也是如此.它可以与预C++ 11(变化来完成= default;通过{}).