C ++ абстрактные конструкторы / деструкторы базового класса - общая корректность
Недавно я стал тупым разработчиком, поэтому я сделал решающий шаг, получил книгу по С ++ и научился правильно делать вещи. В моей голове я знаю, что я хотел бы сделать. Я действительно хочуInterface
что при наследовании должен быть переопределен (если это возможно?). Пока у меня есть следующее:
class ICommand{
public:
// Virtual constructor. Needs to take a name as parameter
//virtual ICommand(char*) =0;
// Virtual destructor, prevents memory leaks by forcing clean up on derived classes?
//virtual ~ICommand() =0;
virtual void CallMe() =0;
virtual void CallMe2() =0;
};
class MyCommand : public ICommand
{
public:
// Is this correct?
MyCommand(char* Name) { /* do stuff */ }
virtual void CallMe() {}
virtual void CallMe2() {}
};
Я намеренно оставил, как я думаю, конструктор / деструктор должен быть реализован вICommand
, Я знаю, если я удалю комментарии, это не скомпилирует. Пожалуйста, может кто-то:
ICommand
и как они предназначены для использования вMyCommand
Правильно ли я настроил вещи вICommand
так чтоMyCommand
должен переопределитьCallMe
а такжеCallMe2
.Я надеюсь, что я не пропустил что-то действительно простое ...