我正在寫C++中的基本遊戲,其中包含3個類:Game
類,Character
類和Item
類。在另一個類C++的構造函數中實例化一個類的對象?
Game
類將擁有遊戲的所有邏輯,所以main
函數只會簡單地創建Game object
,稱其爲邏輯函數,遊戲將執行其他任何操作。可以有超過1名球員。
Character
類有一個可以容納一個或多個Items的指針向量。一個角色可以有一個或多個項目
Item
類具有該項目的所有屬性和功能。
我被困在設計遊戲的結構。有人建議我以創建Game object
的方式構建我的遊戲,它也會創建一個Character object
,然後該Character對象將創建一個用於保存Item的指針矢量,以及Item object
。所以它喜歡當我打電話給constructor of the Game class
時,它會調用constructor of the Character class
,Character類的構造函數會自動調用constructor of the Item class
。
它是有道理的,但我無法弄清楚如何正確實施它。
這是我有 這是我到目前爲止有:
Game.cpp
Game::Game()
{
vector<Character*> characterVector; //to hold Characters
}
Game::startLogic()
{
string name;
Character character = new Character(name);
}
Character.cpp
Character::Character(string name)
{
m_name = name;
vector<Item*> itemVector;
}
Item.cpp
Item::Item()
{ //initialise all the attributes of an item
}
main.cpp中
void main()
{
Game g;
g.startLogic();
}
所以我可以創建一個角色,當遊戲運行(我仍然有該字符推入characterVector後來雖然),但我不是關於如何創建該項目十分肯定字符。我的意思是我應該在哪裏放置這個實例化代碼?在startLogic函數中,在Game的構造函數中,還是在Character的構造函數中?
你卡在哪裏? – 2013-05-03 04:28:01
也許你的大部分邏輯都會進入你的[god object](https://en.wikipedia.org/wiki/God_object)'Game'。 – Zeta 2013-05-03 05:03:19
哦指針向量的原因基本上是cuz,這個遊戲實際上是關於與物品交互(組合,匹配)。角色就像玩家的化身。這只是爲了遊戲編碼的方式,它可以稍後擴展爲具有多個角色(玩家) – 2013-05-03 05:10:55