/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:任子仪
* 完成日期:2014年 4月 11日
* 版 本 号:v12.1
* 输入描述:无
* 问题描述:。
* 程序输出:
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
#include <cmath>
using namespace std;
template<class T>
class Complex
{
public:
Complex(T a=0,T b=0)
{
x=a;
y=b;
}
Complex<T> complex_add(Complex&a)
{
Complex s;
s.x=x+a.x;
s.y=y+a.y;
return s;
}
friend Complex<T> add_complex(Complex&a,Complex&b)
{
Complex s;
s.x=b.x+a.x;
s.y=b.y+a.y;
return s;
}
void display()
{
cout<<"("<<x<<","<<y<<")"<<endl;
cout<<"实部是:"<<x<<",虚部是"<<y<<endl;
}
private:
T x;
T y;
};
int main( )
{
Complex<int> c1(3,4),c2(5,-10),c3;
c3=c1.complex_add(c2); //调用成员函数支持加法运算,有一个形参
cout<<"c1+c2=";
c3.display( );
Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6;
c6=c4.complex_add(c5); //调用成员函数支持加法运算,有一个形参
cout<<"c4+c5=";
c6.display( );
Complex<int> c7;
c7=add_complex(c1,c2); //调用友员函数支持加法运算,有两个形参
cout<<"c1+c2=";
c7.display( );
Complex<double> c8;
c8=add_complex(c4,c5); //调用友员函数支持加法运算,有两个形参
cout<<"c4+c5=";
c8.display( );
return 0;
}
示例图片: