【发布时间】:2013-12-24 10:57:23
【问题描述】:
我已经编写了一个抽象类(带有纯虚函数),并且我希望有一个方法可以接受一个这样的类作为参数。鉴于该类是抽象的,我知道我不能将抽象类传递给任何方法,但是为什么我不能将抽象类的子类传递给该方法呢?如何指定参数应该是指定基类的任何子类?这都是用 C++ 编写的。
【问题讨论】:
-
这就是使用继承的一半。只需让方法获取指向抽象类的指针,然后您就可以将指针传递给任何派生类。
-
“鉴于该类是抽象的,我知道我无法将抽象类传递给任何方法”。 仅当您限制自己按值传递时,这才是正确的。通常在处理抽象时使用多态性(通过引用传递或通过指针地址传递),更普遍地是任何基类/母类。
标签: c++ inheritance subclass base-class