简小的C++基础--重载运算符2

来源:互联网 发布:java泛型t 编辑:程序博客网 时间:2024/05/19 11:49





#include <iostream>#include <string>#include <stdlib.h>#include <cstring>using namespace std;class String{public:    String(){p = NULL;}    String(char *str){p = str;}    friend bool operator>(String &string1,String &string2);    friend bool operator<(String &string1,String &string2);    friend bool operator==(String &string1,String &string2);    void display();private:    char *p;};bool operator>(String &string1,String &string2){    if(strcmp(string1.p,string2.p)>0)        return true;    else        return false;}bool operator<(String &string1,String &string2){    if(strcmp(string2.p,string1.p) > 0)        return true;    else        return false;}bool operator==(String &string1,String &string2){    if(strcmp(string1.p,string2.p) == 0)        return true;    else        return false;}void String::display(){    cout << p;}void compare(String &string1,String &string2){    if(string1 > string2)    {        string1.display();        cout << ">" ;        string2.display();    }    if(string1 < string2)    {        string1.display();        cout << "<" ;        string2.display();    }    if(string1 == string2)    {        string2.display();        cout << "==" ;        string2.display();    }}int main(int argc, char *argv[]){    cout << "Hello World!" << endl;    String string1("hello"),string2("book"),string3("hello");    compare(string1,string2);    compare(string2,string1);    compare(string1,string3);    return 0;}