第五周项目6——类模板(友元函数)
来源:互联网 发布:免费的自己的域名邮箱 编辑:程序博客网 时间:2024/06/05 00:16
问题及代码:
/**Copyright (c)2015,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:.time.cpp*作 者:赵敏*完成日期:2015年4月16日*版 本 号:v1.0**问题描述:使用友元函数*/#include<iostream>using namespace std;template <class T>class Complex{public: Complex (); Complex(T r,T i); Complex complex_add(Complex &c2); void display(); template <class T1> friend Complex<T1> add_complex(Complex<T1> &c1,Complex<T1> &c2);private: T real; T imag;};template <class T>Complex<T>::Complex (){ real=0; imag=0;}template <class T>Complex<T>::Complex(T r,T i){ real=r; imag=i;}template <class T>Complex<T> Complex<T>::complex_add(Complex &c2){ Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c;}template <class T>Complex<T> add_complex(Complex<T> &c1,Complex<T> &c2){ Complex<T> c; c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag; return c;}template <class T>void Complex<T>::display(){ cout<<"("<<real<<","<<imag<<"i)"<<endl;}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
- 第五周项目6——类模板(友元函数)
- 第五周项目4——成员函数、友元函数和一般函数有区别
- 第五周项目4——员函数、友元函数和一般函数有区别
- 第6周项目6-复数模板类(2)(友元函数版)
- 第6周项目6复数模板类(友元函数)
- 第七周项目五——模板类中使用友元函数
- 第六周项目六--复数模板类(友元函数)
- 第五周项目6——类模板
- 第五周项目 4 成员函数、友元函数和一般函数有区别(1)
- 2013级C++第7周(春)项目——深复制、友元、模板 【项目3-成员函数、友元函数和一般函数有区别】
- 第5周-项目6-复数模板类-友元函数
- 第五周项目 6 复制模板类(1,2)
- 第五周项目 6 复制模板类(3)
- 项目5-模板类中使用友元函数
- 第6周项目6--复数模板类-友元
- 第五周项目 4 成员函数、友元函数和一般函数有区别
- 第七周——模板中的友元函数
- C++第7周(春)项目5 复数模板类(加使用友元函数拓展)
- python学习系列(一)--- main函数
- zlnfpxvljnv
- 海康RTSP格式
- Sass跟Scss 上手
- startActivityForResult用户及与onResume顺序问题
- 第五周项目6——类模板(友元函数)
- Python leveldb数据库 把txt的数据存入到leveldb
- Android 强制关闭虚拟键盘
- C语言字节对齐
- eclipse Hadoop环境配置
- MultiRace-Efficient on-the-fly data race detection
- Android笔记之SDK版本判断
- Jquery Easyui-Accordion设置菜单项之间的间隔
- Java平台AES加密