#include #include #include #include #include "./Salaried.h" #include "./SalariedBonus.h" using boost::shared_ptr; using std::vector; bool SortFunction(shared_ptr a, shared_ptr b) { return a->Earnings() < b->Earnings(); } void PrintFunction(shared_ptr a) { a->PrintEarnings(); } int main(int argc, char **argv) { vector > vec; vec.push_back(shared_ptr(new Salaried(110000))); vec.push_back(shared_ptr(new SalariedBonus(120000, 80000))); vec.push_back(shared_ptr(new SalariedBonus(55000, 10000))); sort(vec.begin(), vec.end(), &SortFunction); for_each(vec.begin(), vec.end(), &PrintFunction); return EXIT_SUCCESS; }