相关疑难解决方法(0)

是否可以通过引用以基类作为参数的函数来传递派生类

假设我们有一个IBase带有纯虚方法(接口)的抽象基类.

然后,我们得出CFoo,CFoo2从基类.

我们有一个知道如何使用IBase的功能.

Foo(IBase *input);
Run Code Online (Sandbox Code Playgroud)

这些情况下的通常情况是这样的:

IBase *ptr = static_cast<IBase*>(new CFoo("abc"));
Foo(ptr);
delete ptr;
Run Code Online (Sandbox Code Playgroud)

但是指针管理最好避免使用,那么有没有办法在这种情况下使用引用?

CFoo inst("abc");
Foo(inst);
Run Code Online (Sandbox Code Playgroud)

在哪里Foo:

Foo(IBase &input);
Run Code Online (Sandbox Code Playgroud)

c++ interface

34
推荐指数
1
解决办法
3万
查看次数

标签 统计

c++ ×1

interface ×1