簡體   English   中英

使用結構數組創建typedef

[英]Creating typedef with arrays of structs

我試圖在ProjectEuler上解決問題54。 對於那些不熟悉它的人來說,它涉及尋找1000場撲克游戲的勝利者。

我遇到的問題是,當我嘗試使用typedef使我的程序更簡單,更容易閱讀時,我遇到了以下問題。

錯誤

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

接下來是許多其他錯誤,但它們似乎是由上述原因引起的。

第37行如下

typedef Card[5] Hand;

完整標題

#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的正確方法是:

typedef Card Hand[5];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM