我需要设置一个类继承结构,其中抽象基类只包含成员变量(但没有成员方法)。成员方法将由派生类定义。因此,我需要的是这篇文章:Making a class abstract without any pure virtual methods
从那里的前 2 个答案中,我意识到有两种方法可以实现它:
- 使析构函数成为纯虚拟的。
- 使构造函数受到保护。
我很想知道这两种方法之间的区别。是否存在一种应该优先于另一种的情况(或者可能是一些特殊情况,一种可以工作但另一种不行)?我想了想,什么也想不出来。
我在这里搜索了一些帖子的答案(Is there a use for making a protected destructor virtual?,C++: Protected Class Constructor,Should an abstract class' destructor be pure virtual?)试图把一些东西放在一起,但我做不到得出结论。