首页 > 其他 > 详细

友元模板---加

时间:2014-04-16 14:56:24      阅读:748      评论:0      收藏:0      [点我收藏+]
/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作    者:马广明
* 完成日期:2014 年 4 月 9 日
* 问题介绍: 模板类--加
* 版 本 号:v1.0
*/
#include <iostream>
using namespace std;
template<class T>
class Complex
{
    public:
        Complex(){x=1;y=1;}
        Complex(T r,T i){x=r;y=i;}
        Complex complex_add(Complex<T> &a);
        void display();
        template<class T1>
        friend Complex<T1> add_complex(Complex<T1> &a,Complex<T1> &b);
    private:
        T x;
        T y;
};
template<class T>
void Complex<T>::display()
{
    cout<<‘(‘<<x<<‘,‘<<y<<‘)‘<<endl;
}
template<class T>
Complex<T> Complex<T>::complex_add(Complex<T> &a)
{
    Complex<T> c;
    c.x=a.x-x;
    c.y=a.y-x;
    return c;
}
template<class T>
Complex<T> add_complex(Complex<T> &a,Complex<T> &b)
{
    Complex<T> c;
    c.x=a.x-b.x;
    c.y=a.y-b.y;
    return c;
}
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;
}

bubuko.com,布布扣

友元模板---加,布布扣,bubuko.com

友元模板---加

原文:http://blog.csdn.net/u012369134/article/details/23733777

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!