我对 C++ 完全陌生,我唯一的编程经验是使用 Java。我仍在尝试处理指针。我将如何分配一个指针来指向第二个指针指向的同一个对象?具体来说,我想指定currentPlayer
指向player0
or player1
,并随着游戏状态的变化来回切换。
using namespace std ;
struct Player {
public:
string name ;
//fields
};
class Game {
private:
Player *player0 ;
Player *player1 ;
Player *currentPlayer ;
bool player0First ;
stringstream *gameLog ;
//more fields
public:
void play() ;
void changeGmState(Player*) ;
//other member functions, etc.
} ;
void Game::play() {
if (player0First)
currentPlayer = *player0 ;
else
currentPlayer = *player1 ;
*gameLog << "It's " << currentPlayer->name << "'s turn!" << endl ;
changeGmState(currentPlayer) ;
//code
}
currentPlayer
函数中的赋值是否play()
正确?Xcode 似乎不这么认为,但我仍然对指针分配和正确使用解引用运算符感到非常困惑。相关问题:此代码是否会将正确的玩家姓名插入gameLog
?我可以确定传递currentPlayer
到与传递或changeGmState()
传递相同吗?任何其他反馈表示赞赏。在此先感谢您的帮助。player0
player1