第七周项目5(拓展)-复数类模板加友元函数
来源:互联网 发布:tv版看电影软件 编辑:程序博客网 时间:2024/05/17 07:40
/**程序的版权和版本声明部分:*Copyright(c)2014,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:田成琳*完成日期:2014 年 4 月 8 日*版本号:v1.0*对任务及求解方法的描述部分:*输入描述:无*问题描述:复数类模板 (1)要求类成员函数在类外定义。 (2)在此基础上,再实现减法、乘法和除法*程序输出:- -*问题分析:*算法设计:*/#include<iostream>using namespace std;template<class A> //声明类模板Aclass Complex{public:template<class A1>friend Complex<A1> add_complex(Complex<A1> &c1,Complex<A1> &c2);Complex(){a=0;b=0;}Complex(A x,A y){a=x;b=y;}Complex complex_add(Complex&);//成员函数,返回类型为ComplexComplex complex_dec(Complex&);Complex complex_mul(Complex&);Complex complex_div(Complex&);void display();private:A a,b;};template<class A>Complex<A> Complex<A>::complex_add(Complex<A> &c2) { //成员函数的类外定义。Complex<A> c; c.a=a+c2.a; c.b=b+c2.b; return c; } template<class A> Complex<A> Complex<A>::complex_dec(Complex<A> &c2) { Complex<A> c; c.a=a-c2.a; c.b=b-c2.b; return c; } template <class A> Complex<A> Complex<A>::complex_mul(Complex <A> &c2) { Complex <A> c; c.a=a*c2.a-b*c2.b; c.b=b*c2.a+a*c2.b; return c; } template <class A> Complex<A> Complex<A>::complex_div(Complex <A> &c2) { Complex <A> c; A d=c2.a*c2.a+c2.b*c2.b; c.a=(a*c2.a+b*c2.b)/d; c.b=(b*c2.a-a*c2.b)/d; return c; } template <class A> void Complex<A>::display( ) { cout<<a<<"+"<<b<<"i"<<endl; }template<class A> Complex<A> add_complex(Complex <A> &c1,Complex <A> &c2){Complex<A> c;c.a=c1.a+c2.a;c.b=c1.b+c2.b;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; }
运行结果:
心得体会:真是麻烦。。。
0 0
- 第七周项目5(拓展)-复数类模板加友元函数
- 第七周项目5-复数类模板
- 第七周-项目5-复数类模板
- C++第7周(春)项目5 复数模板类(加使用友元函数拓展)
- C++第7周(春)项目5 复数模板类(加使用友元函数拓展) .
- 第七周项目四,五合集----复数模版类以及拓展模版中使用友元函数
- 第七周项目4:复数模板类
- 第七周 项目四:复数模板类
- 第七周-项目4-复数模板类
- 第七周项目四复数模板类
- 第七周项目五复数模板类
- 第七周 项目5拓展--模板类中使用友元函数
- 第七周项目5拓展模板类中使用友元函数
- 第七周上机任务项目4-复数模板类
- 第七周项目四——复数模板类
- 2013第七周上机任务【项目4-复数模板类】
- 2015年大一下第5周项目6-复数模板类(2)复数模板类友元函数
- 第七周任务三 类模板 复数
- 程序员面试题精选100题-字符串的排列[算法]
- ITEM_IDENTITY
- ZOJ 1797这真的不是水题
- 黑马程序员-图形化界面的课堂笔记
- Google地图
- 第七周项目5(拓展)-复数类模板加友元函数
- 阶乘中0的个数-poj 1401
- OGNL表达式
- 榨干服务器性能
- “微风”团队是什么团队
- MyEclipse+CDT+MinGW配置说明
- 黑马程序员_Java高新技术_反射
- 不同格式证书导入keystore方法
- 将数字转化为大写汉字的字符串