Предположим, что у меня есть чисто виртуальный класс, могу ли я сделать что-то подобное в С++:
class ITreatable
{
public:
bool hasBeenTreated; // <- Can this be here?
virtual bool Treat() = 0;
};
И если нет, как я могу гарантировать, что классы, наследующие ITreatable
, имеют переменную-член, называемую hasBeenTreated
? Это возможно? Есть ли какая-то лучшая практика, которая позволяет избежать этого/советует против этого?
Спасибо
Изменить: Также как я могу определить конструктор для такого класса?
Edit2: Я понимаю, что переменные public member являются плохой практикой, мне просто интересно, является ли дизайн вообще хорошей идеей в С++ или нет.