实验八
更新时间:2024-05-28 14:42:01 阅读量: 综合文库 文档下载
实验八 友元函数和友元类
, 一,实验目的
1. 熟悉类和模板类的使用。
2. 掌握友元函数和友元类的声明格式。
3. 了解友元函数和友元类的作用,使用友元的利弊。
4. 掌握静态数据成员和函数成员的使用方法,它们同一般成员的差异。 5. 掌握栈和队列的运算特点和有关算法。 二、实验内容
1. 定义复数类Complex,使用友元,完成复数的加法、减法、乘法、除法运算,以及
对复数的输出。
# include
float real,imag; public:
complex(float r=0,float i=0) {real=r;imag=i;} void print();
friend complex operator+(complex a,complex b); friend complex operator-(complex a,complex b); friend complex operator*(complex a,complex b); friend complex operator/(complex a,complex b); };
void complex::print() {
cout< if(imag>0)cout<<\ if(imag!=0)cout< complex operator+(complex a,complex b) { complex temp; temp.real=a.real+b.real; temp.imag=a.imag+b.imag; return temp; } complex operator-(complex a,complex b) { complex temp; temp.real=a.real-b.real; temp.imag=a.imag-b.imag; return temp; } complex operator*(complex a,complex b) { complex temp; temp.real=a.real*b.real-a.imag*b.imag; temp.imag=a.real*b.imag+a.imag*b.real; return temp; } complex operator/(complex a,complex b) { complex temp; float tt; tt=1/(b.real*b.real+b.imag*b.imag); temp.real=(a.real*b.real+a.imag*b.imag)*tt; temp.imag=(b.real*a.imag-a.real*b.imag)*tt; return temp; } void main() { complex c1(2.3,4.6),c2(3.6,2.8),c3; c1.print(); c2.print(); c3=c1+c2; c3.print(); c3=c1-c2; c3.print(); c3=c1*c2; c3.print(); c3=c1/c2; c3.print(); } 2,定义矩阵类,使用友元实现矩阵的常用运算 #include class Str { private: int m,n;//表示矩阵的行数和列数 double s[100][100];//定义二维数组存储矩阵 public: int getm(); int getn(); void input(); void output(); friend Str operator+(Str A,Str B); friend Str operator-(Str A,Str B); friend Str operator*(Str A,Str B);//运算符的重载 }; Str operator+(Str A,Str B)//矩阵相加函数 { Str C; int i,j; for(i=0;i Str operator-(Str A,Str B)//矩阵相减函数 { Str C; int i,j; for(i=0;i Str operator*(Str A,Str B)//矩阵相乘函数 { Str C; int i,j,k; for(i=0;i C.m=A.m;C.n=B.n; return C; } void Str::input()//矩阵输入函数 { int i,j; do {cout<<\请输入矩阵的行数、列数:\ cin>>m>>n;}while(m<1||m>100||n<1||n>100);//保证输入矩阵的行数和 列数有效 cout<<\请输入矩阵:\ for(i=0;i for(j=0;j void Str::output()//矩阵输出函数 { int i,j; cout<<\得到的矩阵是:\ for(i=0;i for(j=0;j int Str::getm() { return m; } int Str::getn() { return n; } void menu() { cout<<\、矩阵相加运算\ cout<<\、矩阵相减运算\ cout<<\、矩阵相乘运算\ cout<<\、退出运算系统\} int main() { int choice,i=1; Str A,B,C; cout< cout<<\ 欢迎使用矩阵运算系统\ cout<
正在阅读:
实验八05-28
林清玄散文好词好句03-30
二年级食品安全教案207-28
广东省广州市执信、广雅、六中2014届高三9月三校联考_数学理05-22
4.21百度凤巢系统介绍06-07
动物的行为06-28
超市店面等开业的主要步骤和准备工作06-10
致老公10-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 兴义吉诚商住楼市场分析报告 - 图文
- 2013年和政五中实数复习(一)
- 北京工业大学工商管理考研 招生人数 参考书 报录比 复试分数线
- 2018年浙江省稽阳联谊学校3月联考历史试题(解析版)
- 崔征律师执业年度考核评价表
- 怎样证明线段成比例
- 绵阳东辰题高2013级第三次学月考试数学试题.(文科)doc
- 教育管理学系学生必看书籍
- 教育法学典型案例分析
- 基层党政“一肩挑”模式的利弊分析及完善建议
- 济南英盛生物遗传性耳聋基因检测
- 四川省风景名胜区管理条例
- 线路复测分坑作业指导书
- 梧桐意象解读
- 安徽师范大学本科生优秀毕业论文(设计、创作)培育计划项目申请书
- 理综八生物部分
- 新生儿科题目 (1)
- 陶瓷工艺学考前复习题 2016.06 - 没有答案
- 施工组织设计2
- 中行抵押住房贷款合同范本