模板参数化多态,就是将程序所处理的对象的类型参数化,使得一段程序可以用于处理多种不同类型的对象。
两个函数只有参数类型不同,功能完全相同(函数体一样)。如果能写一段通用代码,能适合多种不同数据类型,便会使代码的可重用性大大提高,从而提高软件的开发效率。使用函数模板可以实现这一目的。
复数的运算符重载:比较大小排序(根据模的大小) (部分)
bool operator>(Complex& a,Complex& b) { float tempa =sqrt((a.r)*(a.r) +(a.v)*(a.v)); float tempb =sqrt((b.r)*(b.r)+ (b.v)*(b.v)); if(tempa >=tempb) { return true; } else { return false; } } ostream& operator<<(ostream& os,const Complex& c) { int r =c.r; int v =c.v; if(r ==0) { printf("%di", v); } else if(v ==0) { printf("%d", r); } else if( v< 0) { printf("%d%di",r,v); } else { printf("%d+%di",r,v); } return os; } void showcp(Complex* arry,int b) { for(int i=0; i< b; i++) { cout<< arry[i] << " "; } cout << endl; } int main() { Complex p1(1,2),p2(1,1),p3(-2,-4),p4(6,4); Complex*ai =new Complex[4]; ai[0] =p1; ai[1] =p2; ai[2] =p3; ai[3] =p4; sort(ai,4); showcp(ai,4); return 0; }