第5周项目6-复数类模板
来源:互联网 发布:安卓手机安装windows 编辑:程序博客网 时间:2024/05/21 06:59
/**copyright (c)2014,烟台大学计算机学院*All rights reserved*文件名称:project.cpp*作者:孙春红*完成日期:2015年4月16日*版本号:v1.0**问题描述:(3)友元函数提供了一种非成员函数访问私有数据成员的途径,模板类使类中的数据成员的类型变得灵活,这两种技术可以结合起来用。要求在前面方案的基础上支持用友员函数实现的加法。用于测试的main()函数如下:*输入描述:略。*程序输出:略。*/#include <iostream>using namespace std;template <class C>class Complex{public: Complex( ) { real=0; imag=0; } Complex(C r,C i) { real=r; imag=i; } Complex complex_add(Complex &c2); template<class T2> friend Complex<T2> add_complex(Complex<T2> &c1,Complex<T2> &c2); void display( );private: C real; C imag;};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;}template <class C>Complex<C> Complex<C>::complex_add(Complex &c2){ Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c;}template <class C>void Complex<C>::display( ){ cout<<"("<<real<<","<<imag<<"i)"<<endl;}template <class C>Complex<C> add_complex(Complex<C> &c1, Complex<C> &c2){ Complex<C> c; c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag; return c;}
运行结果:
知识点总结:
学会使用类模板进行复数的运算以及友元函数在类模板中的使用
0 0
- 第5周-项目6-复数模板类
- 第5周项目6-复数类模板
- 第6周项目5复数模板类
- 第6周项目6--复数模板类-友元
- 第6周项目6-2,3复数模板类
- 第6周项目6-3复数模板类
- 第6周项目6-复数模板类
- 第6周项目6-复数模板类(1)
- 第6周项目6-复数模板类(2)
- 第5周项目5-复数类模板
- C++第7周(春)项目5 复数模板类
- 第5周-项目6-复数模板类-友元函数
- 2015年大一下第5周项目6-复数模板类(2)复数模板类友元函数
- 第六周【项目6-复数模板类】
- 第六周【项目6-复数模板类】
- 第六周 【项目6-复数模板类】
- 第六周项目6-复数模板类
- 第六周项目6-复数模板类
- Dos命令查看端口占用及关闭进程
- qt网络编程
- 黑马程序员_日记50_泛型定义在方法上
- XPath查询
- 一台机器上启动多个Tomcat
- 第5周项目6-复数类模板
- 对 UIView 的 setNeedsLayout、 layoutIfNeeded 和 layoutSubviews 方法之间的关系解释
- Android初学习 - EditText、TextView中文本的获取和设置
- 题目1 : 骨牌覆盖问题·一 (线性递推+矩阵快速幂)
- 第六周项目5——有元类
- 反射类入门学习
- C++线程锁封装
- 黑马程序员_日记51_泛型定义在接口上
- 模运算 NOJ 1037