#include "CardT.h" #include "AceHighT.h" #include "TrumpCardT.h" #include #include #include #include #include using namespace std; bool Comp(const shared_ptr a, shared_ptr b) ; int main() { vector> deck; //vector deck; //vector deck; int suite, value; for (suite =0; suite < SUITE_COUNT; ++suite) { for (value = 0; value < VALUE_COUNT; ++value) { //CardT card(static_cast (suite), // static_cast(value)); //AceHighT card(static_cast (suite), // static_cast(value)); shared_ptr card = make_shared(static_cast (suite), static_cast(value)); deck.push_back(card); } } TrumpCardT::Trump(SuiteT::DIAMOND); cout << "This is a " << deck.back()->Name() << endl; /*cout << "The trump suite is " << EnumToString(SUITE_NAMES, deck.back()->Trump()) << endl; */ random_shuffle(begin(deck), end(deck)); for(auto card: deck) { cout << *card << endl; } cout << endl << endl; sort(begin(deck), end(deck), Comp); for(auto card: deck) { cout << *card << endl; } return 0; } bool Comp(const shared_ptr a, shared_ptr b) { return (*a)<(*b); }