// SharedList.cpp #include #include ///////////////////////////////////////////////////////////// // required part of solution starts here template class SharedList { public: std::list& getList() { return shared; } private: static std::list shared; }; template std::list SharedList::shared; // required part of solution ends here ///////////////////////////////////////////////////////////// void makeLists() { SharedList sl1; sl1.getList().push_back("ardvarrk"); sl1.getList().push_back("dodo"); sl1.getList().push_back("platypus"); sl1.getList().push_back("mule"); SharedList sl2; sl2.getList().push_back("Lucretia Borgia"); sl2.getList().push_back("Vlad the Impaler"); sl2.getList().push_back("Genghis Kan"); } void main() { makeLists(); SharedList rareAnimals; std::list& first = rareAnimals.getList(); std::list::iterator iter; for(iter=first.begin(); iter!=first.end(); ++iter) std::cout << "\n " << (*iter).c_str(); std::cout << "\n\n"; SharedList infamousPeople; std::list& second = infamousPeople.getList(); for(iter=second.begin(); iter!=second.end(); ++iter) std::cout << "\n " << (*iter).c_str(); std::cout << "\n\n"; }