Я совершенно не знаком с 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
}
ли назначение currentPlayer
в play()
функция правильно? Xcode, похоже, не думает, но меня все еще ужасно путают назначение указателя и правильное использование оператора разыменования. Связанные вопросы: будет ли этот код вставить правильное имя игрока в gameLog
? Могу ли я быть уверенным, что прохождение currentPlayer
до changeGmState()
будет работать так же, как и в player0
или player1
? Любые другие отзывы приветствуются. Заранее спасибо за вашу помощь.
Спасибо! Это помогло мне лучше понять указатели на C++. – AdamJames