作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在其他线程中读到,当您实现纯虚拟析构函数(是的,它可以有一个实现)时,它必须为空,并且(?)应该是内联的。它应该是空的吗?如果是这样,为什么?它应该是内联的吗?如果有,为什么?
编辑:这就是纯虚拟析构函数的实现方式:
class A{
virtual ~A() = 0;
}
inline A::~A(){
//implementation
}
最佳答案
纯虚析构函数必须有一个实现(假设你至少有一个具体的派生类)。
没有规定纯虚析构函数必须有空体。我也不知道它应该有什么原因,除了大多数析构函数应该有一个空的主体。
纯虚析构函数可以是内联的或非内联的。我希望每个人的好处取决于基类和具有非平凡析构函数的非静态成员的数量。
另外一个问题是:在某些流行的编译器上,如果析构函数是为类定义的唯一虚方法,最好将其设为非内联的,以帮助实现处理其多态魔力。
关于c++ - 为什么纯虚析构函数的实现必须为空?它应该是内联的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998344/
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!