Это может быть глупый вопрос, но я никогда не видел вопроса об этом или не читал об этом.Является ли это абстрактным классом или чистым виртуальным (интерфейсом)?
Представьте себе, что у нас есть это:
class Numeric
{
public:
virtual ~Numeric() {}
virtual int getNumeric() const = 0;
};
Это считается интерфейс.
А теперь я вставить нумератор (Это может быть что-то еще, вроде ЬурейеЕ и т.д.)
class Numeric
{
public:
enum Numbers
{
One,
Two,
};
virtual Numbers getNumeric() const = 0;
};
до сих пор интерфейс или он теперь считается абстрактным классом?
Как я уже сказал, это может быть глупо, но мне действительно интересно это знать.
По сути, это различие без разницы. Как правило, интерфейс не имеет ничего общего с реализацией внутри него. В то время как абстрактный класс считается способным иметь в нем материал реализации. – randomusername
Вы добавили публичную переменную-член «числа»? – Horstling
@randomusername - Когда вы говорите внутри, вы имеете в виду внутри методов или самого класса? потому что это и есть причина вопроса. Перечисление объявляется внутри класса, тогда если класс считается абстрактным для деклараций в классе, то он становится абстрактным классом. Я прав? - Напротив, это будет интерфейс. – yayuj