我現在有一些與我的代碼有關的重大問題,我希望有人可以對此有所瞭解。C++分配另一個對象的對象值失敗
在我的代碼中,我做了;球員=新球員* [2];連同玩家[i] =新玩家();在for循環中。給他們真正的價值。
後來在我的代碼,然後我想這樣做:
players[0] = players[1];
delete players[1];
在調試。玩家[0]獲得玩家的價值[1]。但接下來的線路選手[0]得到;字符串名稱= < Bad Ptr>以及一些int值變爲-17912312。
我的第一個想法是我需要在Player中創建一個operator =så。我創建:
Player& operator=(const Player& right);
Player& Player::operator=(const Player& right)
{
this->name=right.name;
this->coins=right.coins;
this->bet=right.bet;
return *this;
}
這是沒有效果的。它甚至沒有進入功能。爲什麼我不能分配值?
您不能爲指針重載'operator ='。爲什麼不只是使用對象而不是指針,並擺脫重載操作符,它基本上與默認操作符相同。 – chris
你能在代碼中輸入嗎? – 413X
而不是使用指針和'new',只需使用'Player players [2];'。沒有內存泄漏,更好的語法,沒有堆分配。 – chris