1、minute(m),second(s)/构造 重载函数 ,用参数的初始化表对数据成员初始化 Time operator+(int);/声明后自增运算符+ 重载函数 Time operator-(int);/声明后置自减运算符“-”重载函数 void display()coutminute:second=60) second-=60; +minute; return temp;/返回的是自加前的对象 operator-(int)/定义后置运算符“-”重载函数 second-; if(second=0) second+=60; -minute; /返回的是自减前的对象 int main() Tim
2、e time1(34,59),time2(23,00),time3,time4; coutclass point private: double x,y;/私有成员函数public: point(double a,double b) x=a;y=b;点:(x,y ) x-p.x)*(this-x-p.x)+(this-y-p.y)*(this-y-p.y); friend double d(point &a,point &b)/ return sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);int main() point p1(1,1),p2(4,5)
3、; cout 距离为: p1 - p2 endl;两点间距离:d(p1,p2) return 0; 在本次实验中,对运算符重载的认识有进一步加深,在最初的编程过程中不知道怎样才能将计算距离的算法进行运算符重载,通过多次的尝试和学习才得知对运算符的重载其实就是在原来运算符的基础上在多加一些功能,在重载函数中将其功能实现即可。 实验三 定义学生成绩类Score,其私有数据成员有学号、姓名、物理、数学、外语、平均成绩。再定义一个能计算学生平均成绩的普通函数Average(),并将该普通函数定义为Score类的友元函数。在主函数中定义学生成绩对象,通过构造函数输入除平时成绩外的其他信息,然后调用Ave
4、rage()函数计算平均成绩,并输出学生成绩的所有信息。 在Score类的公有部分声明友元函数Average(),在类外定义构造函数,将各个数据成员初始化,并对某一学生的各信息进行输出;在类外定义一求平均成绩的函数,用于求该生各门课程的平均成绩,在主函数中声明Score的对象s并对各项进行赋初值,通过调用Average()输出平均成绩。class Score friend double Average(Score *s); Score(char *number,char *name,double physicsScore, double mathScore,double englishScor
5、e,double other); char m_number100; char m_name100; double m_physicsScore; double m_mathScore; double m_englishScore; double m_other;Score:Score(char *number,char *name,double physicsScore, double mathScore,double englishScore,double other) strcpy(m_number,number); strcpy(m_name,name); m_physicsScore
6、=physicsScore; m_mathScore=mathScore; m_englishScore=englishScore; m_other=other;学号:m_number姓名:m_name物理:m_physicsScore数学:m_mathScore英语:m_englishScore其他:m_otherm_physicsScore+s-m_mathScore+s-m_englishScore+s-m_other)/4; Score s(1239902983陈晨,80,85,90,88);平均成绩:Average(&s)本次实验较为困惑的地方是在对Average()函数的调用上,因为在Score类中将其声明为友元函数,所以它可以访问类中的私有成员,但在构造函数中由于对个数据成员赋初值,所以在AVerage()函数中不知道变量使用是赋值后的还是赋值钱前的,所以导致在多次调试过程中多次出错,在以后的学习中对定义的理解和掌握还得加强! C+上机实验报告 班级:030914 学号:03091391 姓名:顾娜
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1