2013-07-26 3 views
1

ProjectEuler에서 문제 54를 해결하려고합니다. 그것에 익숙하지 않은 사람들을 위해, 그것은 1000 게임의 포커를위한 우승자를 찾는 것을 포함합니다.구조체 배열로 typedef 만들기

내가 겪고있는 문제는 typedef를 사용하여 프로그램을 더 간단하고 쉽게 읽을 수있게하려고 할 때 다음과 같은 문제가 발생한다는 것입니다.

오류가

pokerchecker.hpp:37: error: expected unqualified-id before '[' token 
pokerchecker.hpp:38: error: ISO C++ forbids declaration of 'Hand' with no type 

이 많은 다른 오류 다음에,하지만 그들은 위의에 의해 발생하는 경우입니다.

#ifndef POKERCHECKER_HPP 
#define POKERCHECKER_HPP 

class PokerChecker{ 
public: 
    PokerChecker(){}; 
    ~PokerChecker(){}; 

    enum Rank{ 
     TWO = 2, 
     THREE, 
     FOUR, 
     FIVE, 
     SIX, 
     SEVEN, 
     EIGHT, 
     NINE, 
     TEN, 
     JACK, 
     QUEEN, 
     KING, 
     ACE 
    }; 

    enum Suit{ 
     HEART, 
     DIAMOND, 
     CLUB, 
     SPADE 
    }; 

    struct Card{ 
     Rank rank; 
     Suit suit; 
    }; 

    typedef Card[5] Hand; // line 37 
    typedef Hand[2] PokerGame; 
    typedef short Winner; 

    Winner EvaluateGame(PokerGame unsortedGame); 

private: 
    PokerGame SortGame(PokerGame unsortedGame); 
    Hand SortHand(Hand); 

    // each function returns the highest card (for comparing two similar hands) 
    Card CheckRF(Hand); 
    Card CheckSF(Hand); 
    Card CheckFOAK(Hand); 
    Card CheckFH(Hand); 
    Card CheckF(Hand); 
    Card CheckS(Hand); 
    Card CheckTOAK(Hand); 
    Card CheckTP(Hand); 
    Card CheckOP(Hand); 
    Card CheckHC(Hand); 
}; 

#endif //POKERCHECKER_HPP 

나는 가능한 할 노력하고 무엇

typedef Card[5] Hand; 

전체 헤더를 다음과 같이

라인 (37)은? 그렇다면 현재의 코드가 어떻게/무슨 문제가 있습니까?

답변

8

배열 형식 정의를 선언하는 올바른 방법은 다음과 같습니다

typedef Card Hand[5]; 
+0

감사합니다! 할 수있을 때 받아 들일 것입니다. – OMGtechy

+1

@joshuagerrard'typedef'에 대한 일반적인 규칙은 '변수를 만들고있는 척합니다' – Yakk

+0

@Yakk 큰 충고입니다, 감사합니다! :) – OMGtechy

관련 문제