// ------------------------------------------------------------------------ // Adders // Program to motivate why template classes might be useful // This time using a template class // ------------------------------------------------------------------------ #include using namespace std; // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ template< typename T > class Adder { public: // constructor Adder() { m_sum = 0; } // add function void Add( T p_number ) { m_sum += p_number; } // get sum function. T Sum() { return m_sum; } private: // sum variable. T m_sum; }; // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ // main function - it all begins here // ------------------------------------------------------------------------ int main() { Adder iadder2; Adder fadder2; int i; float f; for( i = 0, f = 0.0f; i < 10; i++, f += 1.1f ) { iadder2.Add( i ); fadder2.Add( f ); } cout << "The integer sum using an Adder: " << iadder2.Sum() << endl; cout << "The float sum using an Adder: " << fadder2.Sum() << endl; return 0; }