信息系C++实验报告(练习)
信息工程系课程实验报告
姓
名
学
号
实验学时 2 实验时间 2017 年 12 月 15 日
实验地点
指导教师
课程名称 C++程序设计 专
业班
级
成绩
实验项目 运算符重载、虚函数、纯虚函数、抽象类 实 验 目 的 1、理解运算符重载的作用;
2、掌握实现运算符重载的方法;
3、理解虚函数、纯虚函数、抽象类的特性 4、掌握利用虚函数实现动态多态性的方法 实 验 内 容 和 要 求 1、阅读“程序 1.txt”,分析程序运行结果,然后上机调试验证分析结果。
2、阅读“程序 2.txt”,分析程序运行结果,然后上机调试验证分析结果。
以上二题不用抄题也不用写分析结果
3、阅读“程序 3.txt”,然后回答以下问题:
1)行 A、行 B、行 E 的输出结果分别是、、,为什么是这样的输出结果
2)将行 A 改成 p->X::f();,其输出结果为:,为什么
3)将行 C 改成 A *p=&a;,行 A 调用类的 f 函数,输出,行 B 调用类的 g 函数,输出,行 E 调用类的k 函数,输出。
4)将行 C 改成 A *p=&a;,后,要想调用基类 X 的 g 函数,行 B 应改为
以上一题不用抄题,只需写答案在答题纸上。
4、定义一个类 matadd,其中数据成员为一个 M*N 的矩阵(即二维数组),其中 M 和 N 是两个预先定义的符号常数或常变量。通过重载运算符“+”和“=”,实现矩阵相加和赋值运算。例如定义矩阵A = [ 12 34 5 6 ]和 B = [2 2 23 3 3 ],通过运算 C=A+B,得到结果矩阵C = [ 34 57 8 9 ]。
具体要求如下:
(1)私有数据成员:int a[M][N],存放二维数组的值(2)公有成员函数:
matadd():缺省构造函数,初始化数据成员 a[M][N]为 0。
matadd(int x[M][N]):构造函数,用 x 初始化数据成员 a。
matadd operator +(matadd &A, matadd &B):重载加法运算符“+”,实现两个矩阵相加(要求为友元函数)
void operator =(matadd &B):重载赋值运算符“=”,实现两个矩阵赋值(要求为成员函数)
void show():按二维方式输出 a 数组。
(3)在主函数中完成对该类的测试。注意:在程序的开头,定义符号常数或常变量 M 和 N 的值分别为 2 和 3,表示二维数组的行数和列数。在主函数中定义整型数组 a[M][N]和 b[M][N],它们的初值可取上述示例值。定义三个matadd 类的对象 A、B 和 C,并用数组 a 和 b 初始化对象 A 和 B。将 A 加B 后赋值给 C。然后输出对象 C 的数据成员 a 矩阵的值。
实 验 过 程(算法、源代码以及注释)
实 验 结 果(记录程序执行的结果,分析结果)
实 验 总 结(记录程序在调试过程中出现的问题以及解决方法、总结收获和心得)
好用得不得了~
版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《信息系C++实验报告(练习)》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。
