#ifndef HAND_H #define HAND_H #include #include "Card.h" #include "hand_empty.h" // specialized exception class class Hand { public: /** Default Constructor * * Represents an empty hand. */ Hand(); /** Inserts a new card into the hand. * * The new card should be placed nearby other cards of the same suit. */ void insertCard(const Card& c); /** Plays card of given suit if possible; any card otherwise. * * Returned card should be removed from hand. * * Exceptions: if the hand is completely empty, * throws a hand_empty. */ Card playDown(Card::Suit suit); /*------- housekeeping functions ----------*/ /* (necessary to maintain proper fingers) */ /** Copy Constructor */ Hand(const Hand& orig); /** assignment operator */ Hand& operator=(const Hand& orig); /** Destructor */ ~Hand(); private: /** Used to hold the actual cards in the hand */ std::list container; // put whatever else you want here }; #endif