实验十三
1.实验目的
通过本次实验
(1)理解友元函数与运算符重载函数的概念;
(2)学会友元函数的定义与使用方法;
(3)掌握运算符重载函数的定义与使用方法;
2.实验要求
(1)编写实验程序
(2)在 VC++运行环境中,输入源程序
(3)编译运行源程序
(4)输入测试数据进行程序测试;
(5)写出运行结果。
3.实验内容
(1)定义一个复数类,重载“-=”运算符,使这个运算符能直接完成复数的“-=”运算。
分 别 用 成 员 函 数 与 友 元 函 数 编 写 运 算 符 重 载 函 数 。 在 主 函 数 中 定 义 复 数 对 象
c1(10,20)、c2(15,30),进行 c2-=c1 的复数运算,并输出 c1、c2 的复数值。
(2)定义一个数组类 Array,其私有数据成员为整型一维数组 a[10]。通过构造函数给
a[10]赋初值。用 Show 函数显示 a[10]的元素值。用成员函数重载运算符“+”,直接实现两个
一维数组对应元素相加的运算。在主函数中定义数组 a、b 分别为:
int a[10]={1,2,3,4,5,6,7,8,9,10}; int b[10]={4,5,6,7,8,9,10,11,12,13};
用 Array 定义三个数组对象 arr1(a)、arr2(b)、arr3,执行 arr3=arr1+arr2 运算,输出 arr3
的数组元素值。
类似地,用友元函数重载运算符“+=”,实现复合赋值运算:arr1+=arr2,并输出 arr1 的
元素值。
(3)定义一个人民币类 Money,类中数据成员为元、角、分。用成员函数与友元函
数重载“――”运算符,实现人民币对象的减 1 运算。在主函数中定义人民币对象 m1=10 元 8
角 5 分及对象 m2、m3。对 m1 作前置“――”并赋给 m2。对 m1 作后置“――”并赋给 m3。显示
m1、m2、m3 的结果。
(4)定义描述字符串的类 String,编写字符串运算符“+=” 的重载函数,使运算符“+=”
用于两个字符串联接操作,即用 str1+=str2 实现字符串函数 strcat(str1,str2)的操作功能。要
求 分 别 用 成 员 函 数 与 友 元 函 数 编 写 运 算 符 重 载 函 数 。 在 主 函 数 中 定 义 字 符 串 对 象
s1("software and ")与 s2("hardware"),进行 s1+=s2 的字符串联接,并输出 s1、s2 的值。
4.解答参考
(1)成员函数
# include <iostream.h>
class Complex
{ private:
float Real,Image;
public:
Complex(float r=0,float i=0)
{ Real=r;Image=i;}
void Show(int i)
{ cout<<"c"<<i<<"=" <<Real<<"+"<<Image<<"i"<<endl;}
评论0
最新资源