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





#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;
}


猜你喜欢

转载自blog.csdn.net/bootleader/article/details/72614914