P7. class template, 类模板,模板类

不用模板的情况:

class complex
{
public:
    complex(double r=0,double i=0):re(r),im(i){}
    complex& operator +=(const complex&);
    
    double real() const { return re; }
    double imag() const { return im; }


private:
    double re, im;
    friend complex& __doapl(complex* , const complex& r);
};

 

{
    complex c1(2.5, 1.5);
    complex c2(2, 6);
}

使用模板的情况:

template<typename>
class complex
{
public:
    complex(T r=0,T i=0):re(r),im(i){}
    complex& operator +=(const complex&);
    
    T real() const { return re; }
    T imag() const { return im; }


private:
    T re, im;
    friend complex& __doapl(complex* , const complex& r);
};

 

{
    complex<double> c1(2.5, 1.5);
    complex<int> c2(2, 6);
}

注解:

  1. 在设计一个class的时候,你认为你可以把哪些类型抽出来,允许用户在用的时候再指定,你就把这些类型抽出来。

 

posted on 2020-08-27 00:22  一杯明月  阅读(317)  评论(0)    收藏  举报