从接口类指针访问派生类的函数(不存在于接口中)

时间:2014-05-25 17:31:44

标签: c++ polymorphism

我创建了一个Interface类,并希望强制派生类必须实现这个函数。(接口类的moto)。

class ICommand
{
public:
    virtual void Printit() = 0;
};

现在有一个派生类:

class DerivedCommand : public ICommand
{
public:
    void Printit() {printf("hi\n");};
    void thisisnew()
    {
        printf("new\n");
    }
};

在主函数中我想通过接口类指针访问一个新添加的Derived类func,但我根据我读过的c ++理论不知道。

ICommand *p = new DerivedCommand();
//DerivedCommand *pD = new DerivedCommand();
p->Printit();
//p->thisisnew(); //'thisisnew' : is not a member of 'ICommand'

现在我的问题是,如果我想强制派生类实现一个/两个func(如在接口类中)并且还添加它自己的func,并希望通过接口类指针使用新的func - 我们可以这样做吗?

我只有C ++的理论知识,所以如果我错在这里,请正确。 谢谢,求助

0 个答案:

没有答案