【发布时间】:2012-03-06 08:05:06
【问题描述】:
假设我们有一个带有纯虚方法(接口)的抽象基类IBase。
然后我们从基类派生CFoo、CFoo2。
我们有一个知道如何使用 IBase 的函数。
Foo(IBase *input);
这些情况下通常的情况是这样的:
IBase *ptr = static_cast<IBase*>(new CFoo("abc"));
Foo(ptr);
delete ptr;
但是指针管理最好避免,那么有没有办法在这种情况下使用引用?
CFoo inst("abc");
Foo(inst);
Foo 在哪里:
Foo(IBase &input);
【问题讨论】:
-
是的,您的问题是理想的。
-
是的;多态性适用于指针和引用。请停止施法。我们不在好莱坞。
-
现在我知道为什么它被称为铸造......认真!
-
@KerrekSB 好吧,如果你尝试过
IBase& b = CFoo();