Доступ к функциям (отсутствующим в интерфейсе) производного класса из указателя класса интерфейса

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


person Community    schedule 25.05.2014    source источник
comment
нет, вы не можете этого сделать.   -  person iDebD_gh    schedule 25.05.2014
comment
Вы также должны добавить в интерфейс новые функции, которые хотите вызывать из указателя интерфейса.   -  person vsoftco    schedule 25.05.2014
comment
Спасибо всем .... Дубликат qus ужасен для понимания !!!!   -  person    schedule 26.05.2014