【发布时间】:2026-02-04 22:20:07
【问题描述】:
我对 C++ 完全陌生,我唯一的编程经验是使用 Java。我仍在尝试处理指针。我将如何分配一个指针来指向第二个指针指向的同一个对象?具体来说,我想指定currentPlayer指向player0或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
}
play() 函数中对currentPlayer 的赋值是否正确? Xcode 似乎不这么认为,但我仍然对指针分配和正确使用解引用运算符感到非常困惑。相关问题:这段代码会在gameLog 中插入正确的玩家名称吗?我可以确定将currentPlayer 传递给changeGmState() 与传递player0 或player1 的工作方式相同吗?任何其他反馈表示赞赏。提前感谢您的帮助。
【问题讨论】: