运算符重载

    技术2025-10-17  13

    逐渐汇集编写各种运算符重载写法:

    <1> : "+"

    #include<iostream>using namespace std;

    class student{private: float math; float english; float china;public: student(){  math=0;  english=0;  china=0; } student(float m,float e,float c){  math=m;  english=e;  china=c; } void output(){   cout<<"math score : "<<math<<endl<<"english score: "<<english<<endl<<"china score :"<<china<<endl;

     } student operator+ (student &stud1){  student st;  st.math=(math+stud1.english)/2 ;  st.english =(english+stud1.english)/2;  st.china =(china+stud1.china)/2;

      return st; }

     };

    void main(){ student stud1(79.5,85,96),stud2(98,84,72),stu; stu=stud1+stud2; //stu.output(); cout<<stu;}

     

    <2> : "<<"

    #include<iostream>using namespace std;

    class student{private: public: float math; float english; float china;//改为共有类型 student(){  math=0;  english=0;  china=0; } student(float m,float e,float c){  math=m;  english=e;  china=c; } void output(){   cout<<"math score : "<<math<<endl<<"english score: "<<english<<endl<<"china score :"<<china<<endl;

     } student operator+ (student &stud1){  student st;  st.math=(math+stud1.english)/2 ;  st.english =(english+stud1.english)/2;  st.china =(china+stud1.china)/2;

      return st; }

     friend ostream& operator<<(ostream& ostr,const student& stud1);

    };

    ostream& operator<<(ostream& ostr,student& stud1){

      ostr<<"math score : "<<stud1.math<<endl   <<"english score : "<<stud1.english<<endl   <<"china score :"<<stud1.china<<endl;  return ostr;

     }

    void main(){ student stud1(79.5,85,96),stud2(98,84,72),stu; stu=stud1+stud2; cout<<stu;}

    <3> : ">>"

    #include<iostream>using namespace std;

    class student{private: public: float math; float english; float china; student(){  math=0;  english=0;  china=0; } student(float m,float e,float c){  math=m;  english=e;  china=c; } void output(){   cout<<"math score : "<<math<<endl<<"english score: "<<english<<endl<<"china score :"<<china<<endl;

     } student operator+ (student &stud1){  student st;  st.math=(math+stud1.english)/2 ;  st.english =(english+stud1.english)/2;  st.china =(china+stud1.china)/2;

      return st; }

     friend ostream& operator<<(ostream& ostr,const student& stud1); friend istream& operator>>(istream& istr,const student& stud1);};

    istream& operator>>(istream& istr,student& stud1){ istr>>stud1.math>>stud1.english>>stud1.china; return istr;}ostream& operator<<(ostream& ostr,student& stud1){

      ostr<<"math score : "<<stud1.math<<endl   <<"english score : "<<stud1.english<<endl   <<"china score :"<<stud1.china<<endl;  return ostr;}

    void main(){ student stud1(79.5,85,96),stud2(98,84,72),stu; stu=stud1+stud2; cout<<stu; cout<<"inout your data please : "<<endl; cin>>stu; cout<<stu;}

    <4> : "-"

    #include<iostream>#include<math.h>using namespace std;

    class student{private: public: float math; float english; float china; student(){  math=0;  english=0;  china=0; } student(float m,float e,float c){  math=m;  english=e;  china=c; } void output(){   cout<<"math score : "<<math<<endl<<"english score: "<<english<<endl<<"china score :"<<china<<endl;

     } student operator+ (student &stud1){  student st;  st.math=(math+stud1.english)/2 ;  st.english =(english+stud1.english)/2;  st.china =(china+stud1.china)/2;

      return st; } student operator-(student& stud1){  student st;  st.math =fabs(math-stud1.math)*2;  st.english =fabs(english-stud1.english)*2;  st.china =fabs(china-stud1.china)*2;

      return st; } friend ostream& operator<<(ostream& ostr,const student& stud1); friend istream& operator>>(istream& istr,const student& stud1);};

    istream& operator>>(istream& istr,student& stud1){ istr>>stud1.math>>stud1.english>>stud1.china; return istr;}ostream& operator<<(ostream& ostr,student& stud1){

      ostr<<"math score : "<<stud1.math<<endl   <<"english score : "<<stud1.english<<endl   <<"china score :"<<stud1.china<<endl;  return ostr;}

    void main(){ student stud1(79.5,85,96),stud2(98,84,72),stu; stu=stud1+stud2; cout<<stu; stu=stud1-stud2; cout<<stu; cout<<"inout your data please : "<<endl; cin>>stu; cout<<stu;}

    <5> : "*"

    #include<iostream>#include<math.h>using namespace std;

    class student{private: public: float math; float english; float china; student(){  math=0;  english=0;  china=0; } student(float m,float e,float c){  math=m;  english=e;  china=c; } void output(){   cout<<"math score : "<<math<<endl<<"english score: "<<english<<endl<<"china score :"<<china<<endl;

     } student operator+ (student &stud1){  student st;  st.math=(math+stud1.english)/2 ;  st.english =(english+stud1.english)/2;  st.china =(china+stud1.china)/2;

      return st; } student operator-(student& stud1){  student st;  st.math =fabs(math-stud1.math)*2;  st.english =fabs(english-stud1.english)*2;  st.china =fabs(china-stud1.china)*2;

      return st; } student operator*(student& stud1){  student st;  st.math =math*stud1.math/100;  st.english =english*stud1.english/100;  st.china =china*stud1.china/100;  return st; } friend ostream& operator<<(ostream& ostr,const student& stud1); friend istream& operator>>(istream& istr,const student& stud1);};

    istream& operator>>(istream& istr,student& stud1){ istr>>stud1.math>>stud1.english>>stud1.china; return istr;}ostream& operator<<(ostream& ostr,student& stud1){

      ostr<<"math score : "<<stud1.math<<endl   <<"english score : "<<stud1.english<<endl   <<"china score :"<<stud1.china<<endl;  return ostr;}

    void main(){ student stud1(79.5,85,96),stud2(98,84,72),stu; cout<<"operator <<"<<endl; cout<<"operator +"<<endl; stu=stud1+stud2; cout<<stu; cout<<"operator -"<<endl; stu=stud1-stud2; cout<<stu; cout<<"operator *"<<endl; stu=stud1*stud2; cout<<stu; cout<<"operator >>"<<endl; cout<<"inout your data please : "<<endl; cin>>stu; cout<<stu;}

    <6> : "/"

    #include<iostream>#include<math.h>using namespace std;

    class student{private: public: float math; float english; float china; student(){  math=0;  english=0;  china=0; } student(float m,float e,float c){  math=m;  english=e;  china=c; } void output(){   cout<<"math score : "<<math<<endl<<"english score: "<<english<<endl<<"china score :"<<china<<endl;

     } student operator+ (student &stud1){  student st;  st.math=(math+stud1.english)/2 ;  st.english =(english+stud1.english)/2;  st.china =(china+stud1.china)/2;

      return st; } student operator-(student& stud1){  student st;  st.math =fabs(math-stud1.math)*2;  st.english =fabs(english-stud1.english)*2;  st.china =fabs(china-stud1.china)*2;

      return st; } student operator*(student& stud1){  student st;  st.math =math*stud1.math/100;  st.english =english*stud1.english/100;  st.china =china*stud1.china/100;  return st; }

     student operator/(student& stud1){  student st;  st.math=math/stud1.math*100;  st.english =english/stud1.english*100;  st.china =china/stud1.china *100;  return st; } friend ostream& operator<<(ostream& ostr,const student& stud1); friend istream& operator>>(istream& istr,const student& stud1);};

    istream& operator>>(istream& istr,student& stud1){ istr>>stud1.math>>stud1.english>>stud1.china; return istr;}ostream& operator<<(ostream& ostr,student& stud1){

      ostr<<"math score : "<<stud1.math<<endl   <<"english score : "<<stud1.english<<endl   <<"china score :"<<stud1.china<<endl;  return ostr;}

    void main(){ student stud1(79.5,85,96),stud2(98,84,72),stu; cout<<"operator <<"<<endl; cout<<"operator +"<<endl; stu=stud1+stud2; cout<<stu; cout<<"operator -"<<endl; stu=stud1-stud2; cout<<stu; cout<<"operator *"<<endl; stu=stud1*stud2; cout<<stu; cout<<"operator /"<<endl; stu=stud1/stud2; cout<<stu; cout<<"operator >>"<<endl; cout<<"inout your data please : "<<endl; cin>>stu; cout<<stu;}

    待更新... ...

    最新回复(0)