그래서 저는 C++로 작은 게임을 만들고 문제를 뛰어 넘었습니다. 내 player.h 파일 안에 player라는 클래스가 있고이 클래스 안에는 getPotion()
이라는 공용 함수가 있습니다. 또한 potion
이라는 개인 정적 변수가 있습니다. 플레이어의 건강에 똑같은 것이 있습니다. getHealth()
함수는 private static int playerHealth
을 완벽하게 반환합니다. 그러나 분명히 이유가 없기 때문에, getPotion
함수는 그 물약을 반환하지 않습니다. 대신 오류가 발생합니다. 다른 모든 파일에도 헤더 파일을 포함 시켰습니다. 여기 작동하지 않는 클래스에서 개인 변수를 반환하는 함수를 호출
(미안 해요, 난 코드를 삽입하는 방법을 모른다, 그래서 그것을 밖으로 작성해야합니다)
player.h (코드가 나는 데 그 에 문제) :
class Player{
private:
static int potions;
public:
int getPotions();
}
player.cpp (다시 코드 나는에 문제가) :
int Player::potions;
int Player::getPotions(){
Player player;
return player.potions;
}
나는 돌아가는 등의 약간의 코드를 생략했을 것입니다. 그러나이 질문을 할 시간이별로 없기 때문에 그것이 내 문제와 관련된 부분을 넣었습니다.
가 왜 만듭니 까 'getPotions' 함수의 새로운'Player'? 어떤 사고 과정을 통해 그것이 합리적인 것으로 생각하게 만들었지 만 재검사가 필요합니다. –
또한, 거의 확실하게''potions''가'static'으로 선언되기를 원하지 않습니다. –
@ Robᵩ : 맞아. 플레이어가 두 명이라면, 각각의 포션 개수가 필요합니다. 따라서 정적이 아니어야합니다. –