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.

Я надеюсь, что я не пропустил что-то действительно простое ...

Ответы на вопрос(1)

Ваш ответ на вопрос