重载课堂作业

#include <iostream>
using namespace std;
#define OK 1
#define ERROR 0
class String
{
   private:
      char *s;
   public:  
 friend string operator + ( String &s1, String &s2);                             
 friend bool operator == ( String &s1, String &s2);
 friend bool operator > ( String &s1, String &s2);
 friend bool operator < ( String &s1, String &s2);
 friend ostream & operator << (ostream&,String);   
 friend istream & operator >> (istream&,String);   
    void display();
}; 
void String::display()      
{
  cout <<s;
}
bool operator < (String &string1,String &string2) //<的重载 
{
 if(strcmp(string1.s,string2.s)<0)
   return OK;
 else
   return ERROR;
}
bool operator > (String &string1,String &string2)   //>的重载 
{
 if(strcmp(string1.s,string2.s)>0)
   return OK;
 else
   return ERROR;
}
bool operator == (String &string1,String &string2)  //==的重载 
{
 if(strcmp(string1.s,string2.s)==0)
   return OK;
 else
   return ERROR;
}
string operator + ( String &s1, String &s2)//+的重载 
{
    cin>>s1>>s2;
    string c=s1+s2;
    cout<<c;                                                                                                                                                                                                                                                             
} 
ostream & operator <<(ostream & output,String &s)  //<< 
{
 return output;
}
istream & operator >>(istream & input,String &s)   //>>
{
 char m[100];
 cout << "Please input a string:"<<endl;
 input >> m; 
}

void compare(String &string1,String &string2)  
{
 if(operator > (string1,string2)==1)//调用> 
   {
    string1.display();
     cout << ">";
     string2.display();
   }
 else
   if(operator < (string1,string2)==1)//调用< 
   {
    string1.display();
    cout << ">";
    string2.display();
   }
   else
     if(operator == (string1,string2)==1)//调用== 
     {
      string1.display();
      cout << "=";
      string2.display();
     }
     cout << endl;
}
int main()
{
 String string1,string2;
 cin>>string1;
 cin>>string2;
 operator + ( string1, string2);
 compare(string1,string2);
 return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值