你可以在代码中看到,enum CardSuit是不是static
我不明白Deck构造函数如何直接MAX_SUITS在以下代码行中访问:
for (int suit = 0; suit < Card::MAX_SUITS; ++suit)
Run Code Online (Sandbox Code Playgroud)
Card类Deck访问MAX_SUITS是否不需要类对象?
就像是:
Card card1;
for (int suit = 0; suit < card1::MAX_SUITS; ++suit)
Run Code Online (Sandbox Code Playgroud)
如果我int x;在Class Card中声明并在class的Card::x内部定义中说Deck,那么我会得到一条错误消息:“非静态成员的不当使用”。我原本也希望使用时会遇到相同的错误Card::MAX_SUITS,但事实并非如此,它工作正常。
这是程序的相关部分:
class Card
{
public:
enum CardSuit
{
SUIT_CLUB,
SUIT_DIAMOND,
SUIT_HEART,
SUIT_SPADE,
MAX_SUITS
};
enum CardRank
{
RANK_2,
RANK_3,
RANK_4,
RANK_5,
RANK_6,
RANK_7,
RANK_8,
RANK_9,
RANK_10,
RANK_JACK,
RANK_QUEEN,
RANK_KING,
RANK_ACE,
MAX_RANKS
}; …Run Code Online (Sandbox Code Playgroud) c++ ×1