这可能是一个愚蠢的问题,但我从来没有看到有关它的问题或读过它。它是一个抽象类还是纯虚拟(接口)?
假设我们有这样的:
class Numeric
{
public:
virtual ~Numeric() {}
virtual int getNumeric() const = 0;
};
这被认为是一个接口。
现在我插入一个枚举(它可以是别的东西,像一个typedef等)
class Numeric
{
public:
enum Numbers
{
One,
Two,
};
virtual Numbers getNumeric() const = 0;
};
仍在接口或它现在被认为是一个抽象类?
正如我所说,这可能很愚蠢,但我真的很想知道这一点。
实质上,这是一个没有区别的区别。通常认为接口对其内部的实现没有任何意义。而抽象类被认为能够实现其中的东西。 – randomusername 2014-09-02 17:32:24
你是否故意添加公共成员变量“数字”? – Horstling 2014-09-02 17:33:53
@randomusername - 当你在里面说,你是指方法或类本身的内部?因为这是问题的原因。枚举在类中声明,如果一个类在类中被认为是抽象的,那么它就成为一个抽象类。我对吗? - 相反,它将是一个界面。 – yayuj 2014-09-02 17:37:26