运算符重载

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

<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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值