我不希望可以创建此类的对象,但在我的特殊情况下,我不知道如何防止这种情况。
我的想法是:
class abstract
{
private:
int foo;
public:
abstract();
virtual void useless_method_to_force_class_to_be_abstract() = 0;
virtual ~abstract();
};
Run Code Online (Sandbox Code Playgroud)
但这确实不是我认为的最佳实践......
是否有任何技巧可以构建一个概念,以便永远不会发生“我不知道应该将哪种方法设置为纯虚拟”的情况?
没有必要引入不必要的virtual成员函数。使析构函数成为纯虚拟的。确保构造函数protected允许构造派生类。同时,也创建析构函数protected。
class abstract
{
private:
int foo;
protected:
abstract();
virtual ~abstract() = 0;
};
Run Code Online (Sandbox Code Playgroud)
请注意,实现纯虚函数是可以的。对于析构函数,即使它们是纯虚拟的,也必须实现它们。
| 归档时间: |
|
| 查看次数: |
948 次 |
| 最近记录: |