|
ex8-8.cpp - Example 8-8 Printing a deck |
// File: ex8-8.cpp
#include <iostream>
#include <cmath>
using namespace std;
const char suit_char[5] = "CDHS";
const char pips_char[14] = "23456789TJQKA";
class deck;
class card
{
private:
int suit;
int pips;
public:
card(int);
friend ostream& operator<<(ostream&,const deck&);
};
card::card(int x)
{
suit = x / 13;
pips = x % 13;
}
class deck
{
private:
card* d[52];
public:
deck();
~deck();
friend ostream& operator<<(ostream&,const deck&);
};
deck::deck()
{
for (int i = 0; i < 52; i++) d[i] = new card(i);
}
deck::~deck()
{
for (int i = 0; i < 52; i++) delete d[i];
}
int main(void)
{
deck cards;
cout << cards;
return 0;
}
ostream& operator<<(ostream& s,const deck& dk)
{
for (int i = 0; i < 52; i++)
{
s << pips_char[dk.d[i]->pips] << suit_char[dk.d[i]->suit];
if (i % 13 == 12) s << endl;
else s << ' ';
}
return s;
}
CIS27: Programming in C++ Instructor: Joe Bentley