#include using namespace std; /* * A trivial class that remembers * the maximum value seens so far */ template class Max { public: Max(const T& init); ~Max(); void insert(const T& item); void print(); private: T _max_value; }; // Member function definitions template Max::Max(const T& init) : _max_value(init) { } template Max::~Max() { } template void Max::insert(const T& item) { if ( item > _max_value ) { _max_value = item; } } template void Max::print() { cout << "Max value is " << _max_value << endl; } // Now actually using the class template int main() { Max max1(0); max1.insert(10); max1.insert(1); max1.insert(-1); max1.insert(50); max1.insert(43); max1.print(); Max max2(0.0); max2.insert(10.43); max2.insert(1.5); max2.insert(-1.3); max2.insert(50.23); max2.insert(43.2); max2.print(); return 0; }