您的位置:首页 > 其它

类模板遇上友元函数

2016-02-23 18:39 323 查看
#include <iostream>

using namespace std;

 

template<class T>

class Complex



public:

Complex( T r =0, T i =0 );

Complex(T a) { Real = a ;  Image = 0 ; } 

 void print() const;

 friend Complex<T>operator+(Complex<T>&c1,Complex<T>&c2)

{

T r = c1.Real + c2.Real ;     

T i = c1.Image+c2.Image ;

return Complex<T>( r, i ) ;

}

//friend Complex operator- ( const Complex<T> & c1, const Complex<T> & c2 );

//friend Complex operator- ( const Complex<T> & c );

private:  

T  Real, Image ;

};

 

template<class T>

Complex<T>::Complex( T r, T i )



Real = r ;  Image = i ; 

}

 

// template<class T> 

// Complex<T>operator+(Complex<T>&c1,Complex<T>&c2)

// { 

//  T r = c1.Real + c2.Real ;     T i = c1.Image+c2.Image ;

//  return Complex<T>( r, i ) ;

// }

 

template<typename T> 

void Complex<T>::print()const



cout << '(' << Real << " , " << Image << ')' << endl; 

}

 

 

void main61()

{

Complex<int>c1(1, 2);

Complex<int>c2(3, 4);

 

Complex<int>c3 = c1 + c2;

c3.print();

 

system("pause");

}

类模板遇上static

1 从类模板实例化的每个模板类都有自己的模板数据成员,该模板类所有对象每一类共享一个static成员(所有相同类型的对象共享同一个static)

2 和所有非模板类的static数据成员一样,模板类的static数据成员也应在文件范围内定义和初始化

3 每个模板类有自己的类模板的static成员副本

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  友元函数 类模板