// pairs.cpp -- defining and using a Pair template #include #include template class Pair { private: T1 a; T2 b; public: T1 & first(); T2 & second(); T1 first() const { return a; } T2 second() const { return b; } Pair(const T1 & aval, const T2 & bval) : a(aval), b(bval) { } Pair() {} }; template T1 & Pair::first() { return a; } template T2 & Pair::second() { return b; } int main() { using std::cout; using std::endl; using std::string; Pair ratings[4] = { Pair("The Purpled Duck", 5), Pair("Jaquie's Frisco Al Fresco", 4), Pair("Cafe Souffle", 5), Pair("Bertie's Eats", 3) }; int joints = sizeof(ratings) / sizeof (Pair); cout << "Rating:\t Eatery\n"; for (int i = 0; i < joints; i++) cout << ratings[i].second() << ":\t " << ratings[i].first() << endl; cout << "Oops! Revised rating:\n"; ratings[3].first() = "Bertie's Fab Eats"; ratings[3].second() = 6; cout << ratings[3].second() << ":\t " << ratings[3].first() << endl; // std::cin.get(); return 0; }