【发布时间】:2017-07-30 01:22:46
【问题描述】:
C++ 初学者,请耐心等待。
当有一个虚拟覆盖函数时,你应该什么时候调用基函数?应该是这样的:
void Player::onCollision ( Collidable& otherObject )
{
/* OTHER CODE */
/* OTHER CODE */
PhysicalActor::onCollision ( otherObject );
}
或者这个:
void Player::onCollision ( Collidable& otherObject )
{
PhysicalActor::onCollision ( otherObject );
/* OTHER CODE */
/* OTHER CODE */
}
现在我不知道这是否真的有一个固定的规则 - 是应该总是先走还是总是最后走,甚至介于两者之间。我试过用谷歌搜索,但我不确定要谷歌搜索什么,因为标题花了我 5 分钟才写完,而且我认为我在读过的任何书中都不记得这一点。我总是选择第二个,因为在我看来,你应该先处理更通用的东西,然后再处理更具体的东西。
对不起,如果这是一个简单的问题!
谢谢!
【问题讨论】:
-
没有固定的规则。任何对你的设计有意义的东西。
-
取决于你想做什么......这完全取决于你。
-
谢谢大家,我在想这个。你应该瞄准特定的东西吗?一种方式通常被视为更好的编码标准吗?
-
它完全是特定于应用程序的。它甚至不必在之前或之后,也可以在中间调用,就像调用普通函数一样。当您希望调用该基本函数时,只需调用它即可。
标签: c++ inheritance virtual