C ++超类Array还访问子类方法吗?

时间:2010-09-09 15:49:11

标签: c++ arrays binary-tree subclass superclass

我有一个帐户类 从那我有3种类型的帐户 储蓄,信贷和家庭贷款。

我创建了一个二叉搜索树,将所有帐户保存为类型帐户

我现在如何根据对象的类型访问子类的方法?

已经通过语法和代码解决了所有错误,但是这个。

已经绞尽脑汁待了2天。有谁知道这是怎么做的?

1 个答案:

答案 0 :(得分:3)

简单的答案是,如果需要从基类指针访问派生类功能,则会遇到设计问题。原则上,你不应该知道。如果你这样做,那就错了。 你应该(纯粹意义上)从基类接口调用虚函数,并让派生类实现它们的覆盖,使它们正确执行。

现在,有时,实际上,你必须这样做。所以有可能是一个沮丧的人。如果构建中有运行时类型信息,则可以执行dynamic_cast<type*>,如果返回的指针为非空,则表示您拥有该类型的实例。

如果你沿着这条路走下去,把它包裹在一个整洁的东西中,不要让它扩散 - 它会变得混乱。我建议你看看是否有更好的方法,使用多态。

玩得开心!