Я создал один класс интерфейса и хочу, чтобы производный класс должен был реализовать эту функцию (moto класса интерфейса).
class ICommand
{
public:
virtual void Printit() = 0;
};
Теперь один производный класс:
class DerivedCommand : public ICommand
{
public:
void Printit() {printf("hi\n");};
void thisisnew()
{
printf("new\n");
}
};
И в основной функции я хочу получить доступ к одной недавно добавленной функции производного класса через указатель класса интерфейса, но я не могу, согласно теории С++, которую я прочитал.
ICommand *p = new DerivedCommand();
//DerivedCommand *pD = new DerivedCommand();
p->Printit();
//p->thisisnew(); //'thisisnew' : is not a member of 'ICommand'
Теперь вот мой вопрос: если я хочу заставить производный класс реализовать одну/две функции (как в классе интерфейса), а также добавить свою собственную функцию и хочу использовать новую функцию через указатель класса интерфейса - можем ли мы это сделать?
У меня есть только теоретические знания в C++, поэтому, если я ошибаюсь, поправьте меня. Спасибо за помощь