2013-08-31 5 views
0

여러 가지를 시도하고 동일한 오류가 계속 발생합니다. 첫째로, 나는 포케몬과 관련된 모든 것을 다루지 않는다고 말하고 싶다. 내 기술이 분명히 충분하지 않다는 것을 말하고 싶다. 이것은 내가 포인트를 얻고 다른 사람들에게 이해할 수있는 가장 실용적인 예일 뿐이다. .중첩 된 구조체/다른 구조체에서 구조체 사용

struct pokeDex { 
      struct pokemonTemplate { 
      std::string pokemonName; 
      std::string pokemonMoves[3]; 
      int pokemonLevel; 
      int baseATK; 
      int baseDEF; 
      int baseSPATK; 
      int baseSPDEF; 
      int baseSPEED; 
      }; 

      pokemonTemplate Bulbasaur; 
      Bulbasaur.pokemonName = "Bulbasaur"; 
      Bulbasaur.pokemonLevel = 5; 
      Bulbasaur.baseATK = Bulbasaur.pokemonLevel * 10; 
      Bulbasaur.baseDEF = Bulbasaur.pokemonLevel * 10; 
      Bulbasaur.baseSPATK = Bulbasaur.pokemonLevel * 10; 
      Bulbasaur.baseSPDEF = Bulbasaur.pokemonLevel * 10; 
      Bulbasaur.baseSPEED = Bulbasaur.pokemonLevel * 10; 

      pokemonTemplate Pikachu; 
      Pikachu.pokemonName = "Pikachu"; 
      Pikachu.pokemonLevel = 5; 
      Pikachu.baseATK = Pikachu.pokemonLevel * 7; 
      Pikachu.baseDEF = Pikachu.pokemonLevel * 10; 
      Pikachu.baseSPATK = Pikachu.pokemonLevel * 12; 
      Pikachu.baseSPDEF = Pikachu.pokemonLevel * 6; 
      Pikachu.baseSPEED = Pikachu.pokemonLevel * 15; 
     }; 

"오류 :"Bulbasaur "/"Pikachu "오류 메시지가 계속 나타납니다." 이것에 대해 여러 가지 질문을했지만 그 중 누구도 해결하지 못했습니다. 구조체 분리, 시도하고 pokemonTemplate 구조체를 pokeDex 구조체 내에서 참조하는 있지만 작동하지 않았다.

구조체 대신 pokeDex 클래스를 만들려고 시도했는데 pokemonTemplate 구조체를 클래스 외부와 클래스 내부에서 사용하려고 시도했지만 오류가 계속 발생합니다. 매번, 나는 그것을 참조하기 전에 pokemonTemplate 구조체를 정의 할 때주의를 기울 였지만 잘못된 것을해야 할 것이다.

답변

0

class/struct 선언 내에서 멤버를 초기화 할 수 없습니다 (실제로는 여기에 할당됩니다).
수행중인 모든 초기화를 제거하십시오. 단, 중첩 된 struct은 정상적으로 작동해야합니다.

는 다음에 코드를 변경

:

struct pokeDex 
{ 
    struct pokemonTemplate 
    { 
     std::string pokemonName; 
     std::string pokemonMoves[3]; 
     int pokemonLevel; 
     int baseATK; 
     int baseDEF; 
     int baseSPATK; 
     int baseSPDEF; 
     int baseSPEED; 
    }; 
    pokemonTemplate Bulbasaur; 
    pokemonTemplate Pikachu; 
}; 

를 그리고 일을하도록 또는 일부 세터 방법을 초기화 constructor 자신의 물품.

+0

내가 말한 것을 제외한 모든 것을 삭제하면 다음과 같은 세 가지 오류가 발생합니다. 오류 : 예상 ';' 멤버 선언이 끝나면 오류 : 'Bulbasaur'는 타입을 지정하지 않습니다. 오류 : 'pokemonTemplate'은 타입을 지정하지 않습니다. – user2735889

+0

'struct pokemonTemplate' 다음에 세미콜론'; –

+0

@ user2735889 : 이제 작동해야합니다. –

관련 문제