【问题标题】:I stole card game c++ header code and it won't compile... duuhhh我偷了纸牌游戏 C++ 头代码,它不会编译... duuhhh
【发布时间】:2014-09-17 23:34:58
【问题描述】:

我是一个 C++ 新手(但经验丰富的 Visual Basic,Visual FoxPro),我正在尝试编写一个二十一点控制台程序。我从旧线程 (Generating a Deck of Cards) 借用(窃取、使用等)头文件 sn-p。

这是代码:

class Card
 {
 public:
 enum ESuit
{
    Hearts,
    Clubs,
    Diamonds,
    Spades,
    Suit_Count
};

enum ERank
{
    Ace,
    Two,
    Three,
    Four,
    Five,
    Six,
    Seven,
    Eight,
    Nine,
    Ten,
    Jack,
    Queen,
    King,
    Rank_Count
};

static int const skNumCards = Suit_Count * Rank_Count;

Card( int cardIndex )
: mSuit( static_cast<ESuit>( cardIndex / Rank_Count ) )
, mRank( static_cast<ERank>( cardIndex % Rank_Count ) )
{}

ESuit GetSuit() const { return mSuit }; // should be mSuit; }
ERank GetRank() const { return mRank }; // should be mRank; }

private:
    ESuit mSuit;
    ERank mRank;
}  // missing ending ;  should be }; 

编译不正确。线路有问题:

ESuit GetSuit() const { return mSuit };  // should be mSuit; }
ERank GetRank() const { return mRank };  // should be mRank; }

private:
    ESuit mSuit;
    ERank mRank;   

提前感谢您的帮助。

【问题讨论】:

  • 请提供编译错误的详细信息,如果可能,请在代码中标记相应的行。
  • 您已经修复了) =&gt; } 问题。分号问题就在它旁边。
  • 我没有包含编译错误,因为它们太多了,第一对让我意识到头文件有错误。退后一步重新审视它后,我发现分号位于 Esuit GetSuit() 和 ERank GetRank() 两行错误的一侧。头文件末尾也没有结束分号。更正了这些,我可以编译。学习一门新语言的问题是获得正确的语法和标点符号。您的 cmets 在这里和答案都是正确的!谢谢。
  • 真的希望你提供所有的代码.. Dx。既然你偷了我也想偷x)

标签: c++ header-files blackjack


【解决方案1】:

那些行应该是

ESuit GetSuit() const { return mSuit; }
ERank GetRank() const { return mRank;}

在类定义的右大括号之后还需要一个分号。

【讨论】:

  • 你完全正确。非常感谢你。我现在进入第 2 阶段 ;)
  • “第2阶段”正在窃取(借用等)Windows的FreeCell的源代码?
  • @Jongware 我对“偷窃”一词的使用是开玩笑的,而且我想引起一些注意。本论坛提供的代码不受版权保护,可以免费获得。一些 3 ****oles 决定投票给我。对于为了学习而花费数小时阅读帖子然后决定提出自己的问题的人来说,这是一个很好的“欢迎”。长大了。
猜你喜欢
  • 1970-01-01
  • 2018-09-11
  • 2013-04-17
  • 2021-12-15
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多