gpt4 book ai didi

c++ - 接口(interface)的延迟实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:40 25 4
gpt4 key购买 nike

我有一个 Foo 类。

struct Foo
{
void someFunc()
{
}
};

我有一个接口(interface) IFoo。

struct IFoo
{
virtual void someFunc() = 0;
};

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

...

失败的尝试是这样做:创建一个实现它们的类...理论上通过继承 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com