Недавно я был немым как разработчик, поэтому я сделал решительный шаг, получил книгу на С++ и научился правильно поступать. В моей голове я знаю, что я хотел бы сделать. Я действительно хочу, чтобы 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
.
Надеюсь, я не пропустил что-то очень простое...