【发布时间】:2009-01-08 21:54:12
【问题描述】:
我正在编写一个简单的游戏来学习获得更多 C++ 经验,并且我有一个想法,我觉得多态性几乎 有效,但没有。在这个游戏中,Party 相当线性地穿过Map,但偶尔会在路上遇到Fork。叉子(基本上)是一个std::vector<location*>。最初我打算在Party 成员函数中编写如下代码:
if(!CurrLocation->fork_.empty())
// Loop through forks and show options to the player, go where s/he wants
else
(CurrLocation++)
但我想知道以下的一些变体是否会更好:
CurrLocation = CurrLocation->getNext();
Fork 实际上是从 Location 派生的,并重载了一些新函数 getNext()。但在后一种情况下,location(一个低级结构)必须是向用户呈现消息而不是“传递这个备份”的那个,我不觉得这很优雅,因为它结合了@ 987654330@转UserInterface::*。
你的意见?
【问题讨论】:
标签: c++ polymorphism coupling