01/* 02. * copyright and version Declaration of the program part 03. * Copyright (c) 2013, Yantai University Computer college student 04. * All rightsreserved. 05. * file name: complx. cpp 06. * Author: Zhao guanzhe 07. * Completion Date: April 8, April 12, 2013. * version: v1.0 09. * input Description: 10. * Problem description: 11. */# include <iostream> using namespace std; template <class numtype> class Complex {public: Complex () {real = 0; imag = 0;} Complex (numtype r, numtype I) {real = r; imag = I;} Complex complex_add (Complex & c2); friend Complex <numtype> add_complex (Complex <numtype> & c2, complex <numtype> & c3); void display (); private: numtype real; numtype imag ;}; template <class numtype> Complex <numtype> :: complex_add (Complex & c2) {Complex c; c. real = real + c2.real; c. imag = imag + c2.imag; return c;} template <class numtype> // remember to add <numtype> Complex <numtype> add_complex (Complex <numtype> & c2, complex <numtype> & c3) {Complex <numtype> c; c. real = c2.real + c3.real; c. imag = c2.imag + c3.imag; return c;} template <class numtype> void Complex <numtype >:: display () {cout <"(" <real <", "<imag <" I) "<endl;} int main () {Complex <int> c1 (3, 4), c2 (5,-10), c3; c3 = c1.complex _ add (c2); // you must have a member function in the template class that supports addition. The cout parameter <"c1 + c2 ="; c3.display (); complex <double> c4 (3.1, 4.4), c5 (5.34,-10.21), c6; c6 = c4.complex _ add (c5); cout <"c4 + c5 = "; c6.display (); Complex <int> c7; c7 = add_complex (c1, c2); // a member function in the template class must support addition operations, there are two parameters cout <"c1 + c2 ="; c7.display (); system ("pause"); return 0 ;}
Running result: