}
Money Money::operator ++() //前置++ { Cents++;
if(Cents>=100){ Dollars++; Cents-=100; }
return *this ; //返回当前对象的指针值 }
Money Money::operator ++(int) // 后置 { Money t=*this ; //保留当前对象的指针值 Cents++;
if(Cents>=100){ Dollars++; Cents-=100; }
return t; //返回当前对象的指针值 }
void main(void) { Money m1(25,50),m2(105.7); Money c,d; m1.Show(); c=++m1; d=m1++; c.Show();d.Show(); c=++m2; d=m2++; c.Show();d.Show(); }
第18题
/*------------------------------------------------
【程序设计】
------------------------------------------------
题目:定义一个数组类Array,通过成员函数重载\运算符,通过友元函数重载\运算符,实现数组的加等于、减等于运算。具体要求如下: (1)私有数据成员
float pa[20]; //表示一维数组,最多有20个元素 int n; //数组的大小 (2)公有成员函数
Array(); 为缺省构造函数,数组元素值均为0,数组元素个数为0。 Array(float [],int ):构造函数,用形参初始化数据成员; void operator+=(Array &t):实现数组对象的加等于运算;
friend void operator-=(Array &t1,Array &t2):实现数组对象的减等于运算; void print():以每行5个元素的格式输出数组; (3)对所定义的类进行测试
测试数据为:float a[10]={1,2,3,4,5,6,7,8,9,10},b[10]={0,1,2,3,4,5,6,7,8,9}; 产生的两个对象:a1和a2
进行的运算包括:a1+=a2;a1-=a2; 每次运算后得输出运算结果。
--------------------------------------------------
注意:程序编写在下面的Program和End区域。 ------------------------------------------------*/
/**********Program**********/
/********** End **********/
答案:#include void main(){ float a[10]={1,2,3,4,5,6,7,8,9,10},b[10]={0,1,2,3,4,5,6,7,8,9}; Array a1(a,10),a2(b,10); a1+=a2; a1.print(); a1-=a2; a1.print(); } 第19题 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目: 定义一个类为形状,由它公有派生出圆、正方形、长方形。 利用多态性以虚函数的形式完成计算圆、正方形、长方形的面积。 具体要求如下: (1)形状类名为shape, 圆、正方形、长方形的类名分别为circle,square,rectangle。 (2)基类shape中只有一个公有的成员函数:virtual void area(); 用于求面积。 (3)各派生类的数据成员均是私有的,数据类型为double型。圆的半径为r,正方形的边长为a、长方形的边长为a,b, 各派生类均需要定义公有的构造函数。 (4)设计一个完整的程序,分别计算圆、正方形、长方形的面积并输出结果。 -------------------------------------------------- 注意:在函数的花括号中填入所编写的程序。 ------------------------------------------------*/ /**********Program**********/ /********** End **********/ 第20题 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目: 定义一个描述人基本情况的类,类名为person,由基类person公有派生出派生类student,完成派生类的测试,具体要求如下: 基类的具体要求: 1、私有数据成员 char *Name; //姓名 char Sex[4]; //性别 int Age; //年龄 2、公有成员函数 构造函数:person(char *name,char sex[4],int age); 输出函数:void showperson(); 派生类的具体要求: 1、增加私有数据成员, int XH; //学号 int Score; //成绩 2、公有成员函数 构造函数:完成类的数据成员初始化。 输出函数:void showstudent();要求输出学生的所有信息。 在主函数中完成类的测试,输入两个学生对象A和B,A(\学生甲\男\学生乙\女\并在屏幕上输出. ------------------------------------------------*/ /**********Program**********/ /********** End **********/ 答案:---------------------- #include class student:public person{ int XH; int Score; public: student(char *xm,char xb[4],int age,int xh,int score):person(xm,xb,age) { XH=xh; Score=score; } void showstudent(){ showperson(); cout<<\学号是\分数为\ } }; void main(){ student s1(\李四\男\ s1.showstudent(); } ---------------------- 第21题 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目: 定义一个复数类Complex,用友元运算符重载实现复数的二元运算符\(复数*复数),用成员函数重载实现\和\前置++\运算。 具体要求如下: (1)私有数据成员: float Real,Image; (2)公有成员函数: ●构造函数Complex (float, float):以参数初始化数据成员Real,Image; ●void Show():输出复数的实部和虚部; ●成员函数void operator += (Complex &),实现重载\运算; ●成员函数Complex operator ++( ),实现重载\前置++\运算; (3)友元函数Complex operator *(Complex &c1,Complex &c2),实现重载二元运算符\(复数*复数); (4)编写一个完整的程序测试该类。 ------------------------------------------------*/ /**********Program**********/ /********** End **********/ 答案: #include 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++改错和填空题题库(7)在线全文阅读。
相关推荐: