我有类Foo。
struct Foo
{
void someFunc()
{
}
};
我有一个接口(interface)IFoo。
struct IFoo
{
virtual void someFunc() = 0;
};
如果我不想直接在IFoo中实现IFoo,是否有办法在以后使用它?
...
失败的尝试是这样做:
创建一个同时实现它们的类。通过从Foo继承来理论上满足IFoo。
struct Bar : Foo, IFoo
{
};
可以这样使用:
Bar x = Bar();
IFoo* y = &x;
但这是行不通的。编译器将Bar视为抽象。
请问有人有什么想法吗?没有实际的代码问题可粘贴,我只是想看看是否有可能这样做。
最佳答案
struct Bar : IFoo, Foo
{
virtual void someFunc()
{
Foo::someFunc();
}
};
或者:
struct Bar : IFoo
{
Foo foo;
virtual void someFunc()
{
foo.someFunc();
}
};
关于c++ - 接口(interface)的后期实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25911412/