用C++语言和类输出一副扑克牌
时间: 2024-09-27 20:03:01 浏览: 83
扑克牌 c++
在C++中,你可以创建一个类来表示扑克牌,并利用多态性和继承来模拟扑克牌的不同花色(如红桃、黑桃、梅花、方块)和数值(A到K)。下面是一个简化的例子:
```cpp
#include <iostream>
#include <string>
// 定义牌的基本类
class Card {
public:
Card(int value, std::string suit) : value_(value), suit_(suit) {}
virtual ~Card() {}
// 获取值和花色
int getValue() const { return value_; }
std::string getSuit() const { return suit_; }
protected:
int value_;
std::string suit_;
};
// 红桃、黑桃、梅花和方块牌的具体类,继承自Card
class Spade : public Card {
public:
Spade(int value) : Card(value, "♠") {}
};
class Heart : public Card {
public:
Heart(int value) : Card(value, "♥") {}
};
class Diamond : public Card {
public:
Diamond(int value) : Card(value, "♦") {}
};
class Club : public Card {
public:
Club(int value) : Card(value, "♣") {}
};
// 打印牌的方法
void print(Card& card) {
std::cout << "Value: " << card.getValue() << ", Suit: " << card.getSuit() << "\n";
}
int main() {
Spade spade Ace("A");
Heart heart(5);
Diamond diamond(Queen);
Club club(King);
print(spade); // 输出红桃A
print(heart); // 输出黑桃5
print(diamond); // 输出梅花Q
print(club); // 输出方块K
return 0;
}
```
在这个示例中,`Card`是基础类,而`Spade`, `Heart`, `Diamond`, 和 `Club` 都是从`Card`派生出的子类,它们分别代表四种花色。通过`print`函数,我们可以对任意类型的牌实例进行统一的输出。
阅读全文