我有一堂课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视为抽象.
有没有人有任何想法吗?粘贴没有实际的代码问题,我只是想看看这样的事情是否可行.
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)