Как я могу отобразить полное значение масти, например, Hearts или Clubs? - PullRequest
0 голосов
/ 31 октября 2019

У меня есть класс для хранения данных одной карты. Хотя у меня есть функция, чтобы дать мне символ, представляющий костюм, то, что я действительно хотел бы, это полное слово, представляющее этот костюм (например, «сердца»).

Как я могу это сделать? Код ниже:

class Card
{
    private:
        int value;  // stores value of card(1,2,3,4,5,6,7,8,9,0)
        char suit;  // stores suit of card('h','d','s','c'
        char card;  // stores card symbol(1,2,3,4,5,6,7,8,9,0,k,q,j,a)

    public:
        void setValue(int v)         {value = v;}  
        void setCard(char c)         {card = c;} 
        void setSuit(char s)         {suit = s;} 


        int getValue()        {return value;} 
        char getSuit()        {return suit;} 
        char getCard()        {return card;} 

        void display();
};


void Card :: display()   // display member function
{
    cout << "Value is: " << getValue() << endl; 
    cout << "Suit is : " << getSuit() << endl; 

    cout << "Card is: " << getCard() << endl;
}

1 Ответ

0 голосов
/ 31 октября 2019

Вы можете сделать это с помощью чего-то вроде:

std::string getFullSuit() {
    if (suit == 's') return "Spades";
    if (suit == 'c') return "Clubs";
    if (suit == 'd') return "Diamonds";
    if (suit == 'h') return "Hearts";
    return "No idea!";
}

Но, скорее всего, лучше использовать enum (а не char) для такого рода вещей,поскольку это более естественно подходит для проверки типов (почти наверняка устраняет необходимость в приведенном выше коде "No idea!").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...