延迟实现接口

Bea*_*kie 4 c++ interface

我有一堂课Foo.

struct Foo
{
    void someFunc()
    {
    }
};
Run Code Online (Sandbox Code Playgroud)

我有一个接口IFoo.

struct IFoo
{
    virtual void someFunc() = 0;
};
Run Code Online (Sandbox Code Playgroud)

如果我不想直接将IFoo实现到Foo中,有没有办法在以后做到这一点?

...

失败的尝试是这样做:创建一个实现它们的类......理论上也通过继承Foo来满足IFoo.

struct Bar : Foo, IFoo
{

};
Run Code Online (Sandbox Code Playgroud)

哪个可以这样使用:

Bar x = Bar();
IFoo* y = &x;
Run Code Online (Sandbox Code Playgroud)

但那没用.编译器将Bar视为抽象.

有没有人有任何想法吗?粘贴没有实际的代码问题,我只是想看看这样的事情是否可行.

Pio*_*cki 7

struct Bar : IFoo, Foo
{
    virtual void someFunc()
    {
        Foo::someFunc();
    }
};
Run Code Online (Sandbox Code Playgroud)

要么:

struct Bar : IFoo
{
    Foo foo;    
    virtual void someFunc()
    {
        foo.someFunc();
    }
};
Run Code Online (Sandbox Code Playgroud)