【发布时间】:2013-05-15 13:45:42
【问题描述】:
如this answer中所述:
高度依赖 dynamic_cast 通常表明您的设计出了问题。
我想知道的是如何在派生类中调用自定义函数,基类中没有同名函数,但是使用基类指针并且可能没有@987654322 @如果事实上有更好的方法。
如果这个函数是两个都定义的虚函数,那很容易。但这只是派生类独有的功能。
也许dynamic_cast毕竟是最好的方式?
【问题讨论】:
-
嗯,你想做你想做的事,这表明你的设计可以通过返工来做。如果您需要,请使用
dynamic_cast。 -
也许只有我一个人,但我怀疑你的设计有点错误。
-
出于兴趣,什么样的场景需要你这样做?
-
如果你真的想这样做,你应该问问自己,你是否真的在处理正确的类型。如果代码设计为与基类一起使用,那么您应该与基类一起使用,并且如果您到处都必须问“可能是这种类型,那么就这样做”,这只是您错误的类型级别工作。
-
@Muckle_ewe:最可能的情况是,如果您使用基类指针导航到一个对象,然后需要做一些未通过基类公开的事情。 RTTI 是解决该问题的一种选择,其他方法是胖基类、访问者模式或重新设计的导航方案。
标签: c++ polymorphism