저는 C++을 완전히 처음 접했고 프로그래밍에 대한 유일한 경험은 자바입니다. 나는 여전히 포인터에 대한 핸들을 얻으려고하고있다. 두 번째 포인터가 가리키는 동일한 객체를 가리키는 포인터를 어떻게 할당합니까? 특히 currentPlayer
에 player0
또는 player1
을 지정하고 게임 상태가 변경되면 앞뒤로 전환하려고합니다. play()
기능 올바른에서 currentPlayer
에 할당첫 번째 포인터가 가리키는 객체에 두 번째 포인터 할당
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
}
인가? Xcode는 생각하지 않는 것 같지만 포인터 할당과 비 참조 연산자의 적절한 사용에 의해 난 아직도 혼란 스럽다. 관련 질문 :이 코드는 올바른 플레이어 이름을 gameLog
에 삽입합니까? currentPlayer
을 changeGmState()
으로 전달하면 player0
또는 player1
과 똑같이 작동합니까? 다른 의견을 보내 주시면 감사하겠습니다. 귀하의 도움에 미리 감사드립니다.
감사! 그래서 C++ 포인터를 좀 더 잘 이해할 수있었습니다. – AdamJames