當編譯我的C++程序中,我收到任何錯誤,但是內unordered_map哈希函數失敗,試圖通過0爲什麼必須將我的全局變量聲明爲指針?
(STL的hashtable_policy.h的345線)國防部我已經找到了解決,但不要」不知道爲什麼我一開始就遇到問題。 我的結構是這樣的,(很抱歉的特定代碼。)
struct Player {
private:
Entity& entity = entityManager->create();
public:
Player() {
entity.addComponent(new PositionComponent(0, 0)); // Add component uses the unordered map.
}
};
Player playerOne; // Error perpetuates through constructor.
但是,如果我宣佈playerOne爲指針,像這樣:
Player* playerOne;
,然後調用:
playerOne = new Player();
我沒有任何問題。
我一直在尋找 - 沒有成功。我可能做錯了什麼?
'entityManager-> create()'是否返回臨時值。如果是這樣,你最終會得到一個懸而未決的參考。 –