spc*_*mrn 14 c++ abstract-class destructor pure-virtual
我认为虚拟一般就足够了.
有没有其他理由使它成为纯虚拟而不是强制派生类来实现自己的析构函数?我的意思是如果你在你的类的构造函数中分配一些东西,你应该强制你自己的析构函数 - 如果你的类是派生的.
不算作我已经知道的答案:如果你想让你的类抽象而且它没有纯虚函数 - 把它留给析构函数.
还有一些用途吗?
Jam*_*ran 11
不.如果基类分配任何东西,那么释放它是负责任的.
此外,如果派生类没有分配任何东西,强迫它们写一个虚拟dtor是没有意义的.
jpa*_*cek 11
如果你想要你的类抽象并且它没有纯虚函数 - 将它留给析构函数.
实际上,我认为还有更多.所有纯虚析构函数都是,使整个类抽象化.您必须为纯虚拟析构函数以及非纯虚拟析构函数提供实现,派生类的析构函数是虚拟的,仅使用虚拟析构函数等.
基本上,如果一个类已经有一些纯虚函数,它的行为将等同于虚拟和纯虚析构函数.