第八周——阅读程序-运算符重载

来源:互联网 发布:大学生it就业培训班 编辑:程序博客网 时间:2024/06/06 09:28

这几个小程序有助于我们更好的理解运算符重载,自己先写出运算结果,再看看编译的结果。

(1)

#include <iostream>using namespace std;class Sample{private:    int x;public:    Sample () { }    Sample(int a){x=a;}    void disp(){cout<<"x="<<x<<endl;}    friend Sample operator+( Sample &s1, Sample &s2);};Sample operator+( Sample &s1, Sample &s2){    return Sample(s1.x+s2.x);}  int main(){    Sample obj1(10);    Sample obj2(20);    Sample obj3;    obj3=obj1+obj2;    obj3.disp();    return 0;}


(2)

#include <iostream>using namespace std;class Sample{private:    int x;public:    Sample() {}    Sample (int a){x=a;}    void disp(){cout<<"x="<<x<<endl;}    Sample operator+(Sample &s);};Sample Sample:: operator+( Sample &s){    return Sample(x+s.x);}int main(){    Sample obj1(20);    Sample obj2(20);    Sample obj3;    obj3=obj1+obj2;    obj3.disp();    return 0;}


(3)

#include<iostream>using namespace std;class Wages//“工资”类{    double base;//基本工资    double bonus;//奖金    double tax;//税金public:    Wages(double CBase, double CBonus,double CTax):  base(CBase), bonus(CBonus),tax(CTax) {}    double getPay()const;//返回应付工资额    Wages operator+(Wages w)const;//重载加法};double Wages::getPay()const{    return base+bonus-tax;}Wages Wages::operator+(Wages w)const{    return Wages(base+w.base,         bonus+w.bonus,tax+w.tax);}int main(){    Wages wl(2000,500,100),w2(5000,1000,300);    cout<<(wl+w2).getPay()<<endl;    return 0;}


(4)

#include<iostream>using namespace std;class Pair{    int m;    int n;public:    Pair(int i, int j):m(i),n(j) {}    bool operator >(Pair p) const; };bool Pair::operator>(Pair p)const{    if (m!=p.m)         return m>p.m;    return n>p.n;}int main(){    Pair p1(3,4),p2(4,3), p3(4,5);    cout<<(p1>p2)<<(p2>p1)<<(p2>p3)<<(p3>p2);    return 0;}


学习心得:从这些的小程序中,体会运载符的用法。继续加油!

0 0
原创粉丝点击