1. 程式人生 > >C++ 類模板的成員函式程式碼筆記

C++ 類模板的成員函式程式碼筆記

#include <iostream>
#include <cstring>
using namespace std;
template <class T>
class Max4 
{
    T a,b,c,d;                                      //四個型別為T的私有資料成員
    T Max(T a,T b){return (a>b)?a:b;} 
                                 //語句1,型別為T,引數型別為T,返回a、b二者最大值的私有成員函式
public:
    Max4(T,T,T,T);                                  //宣告建構函式,含4個型別為T的引數
    T Max(void);                                    //宣告返回值型別為void的公有成員函式
};

template <class T>                                      //定義成員函式必須再次宣告類模板
Max4<T>::Max4(T x1,T x2,T x3,T x4):a(x1),b(x2),c(x3),d(x4) { }  //語句2

template <class T>                                      //定義成員函式必須再次宣告類模板
T Max4<T>::Max(void) {return Max(Max(a,b),Max(c,d));}
                               //語句3,定義類Max4的成員函式Max(void),定義時要將Max<T>看作整體
int main( )
{
    Max4 <char> C('W','z','a','A');  	            //語句4,比較字元
    Max4 <int> A(-25,-67,-66,-256);   	            //語句5,比較整數
    Max4 <double> B(1.25,4.3,-8.6,3.5);             //語句6,比較雙精度實數
    cout<<C.Max( )<<" "<<A.Max( )<<" "<<B.Max( )<<endl;  //語句7
    return o;
}