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