私は 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 から派生しており、いくつかの新しい function をオーバーロードしていますgetNext()。しかし後者の場合、location(低レベルの構造) は、「これをバックアップする」のではなく、ユーザーにメッセージを表示するものでなければなりませlocationんUserInterface::*。
あなたの意見は?