比較大小 ——類模板
阿新 • • 發佈:2019-02-02
#include <iostream> #include <iomanip> usingnamespace std; template<classnumtype>//宣告一個模板,虛擬型別名為numtype。class表明,其後面的是型別引數,名字可任取。 classCompare //類模板名為Compare { public: Compare(numtype a,numtype b); numtype max(); //函式型別暫定為numtype numtype min(); private: numtype x,y; //資料型別暫定為numtype }; //在類模板外定義各成員函式 template<classnumtype> Compare<numtype>::Compare(numtype a,numtype b):x(a),y(b){} template<classnumtype> numtype Compare<numtype>::max() { return(x>y)? x:y; } template<classnumtype> numtype Compare<numtype>::min() { return(x<y)? x:y; } //以下為主函式 intmain() { inti1,i2; cin>>i1>>i2; Compare<int> cmp1(i1,i2); cout<<cmp1.max()<<" "<<cmp1.min()<<endl; floatf1,f2; cin>>f1>>f2; Compare<float> cmp2(f1,f2); cout<<setiosflags(ios::fixed); cout<<setprecision(2); cout<<cmp2.max()<<" "<<cmp2.min()<<endl; charc1,c2; cin>>c1>>c2; Compare<char> cmp3(c1,c2); cout<<cmp3.max()<<" "<<cmp3.min()<<endl; return0; } /************************************************************** Problem: 2437 User: 201358501133 Language: C++ Result: Accepted Time:0 ms Memory:1268 kb ****************************************************************/