/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 关系运算符的重载
* 作 者: 刘江波
* 完成日期: 2012 年 7 月 2 日
* 版 本 号: v.722
* 对任务及求解方法的描述部分
* 问题描述:
* 程序头部的注释结束
*/
#include<iostream>
using namespace std;
class String
{
public:
String(){p = NULL;} //默认构造函数
String(char *str); //构造函数
friend bool operator > (String &string1,String &string2);//声明运算符重载函数为友元函数
friend bool operator < (String &string1,String &string2);
friend bool operator == (String &string1,String &string2);
void display(); //输出p所指向的字符串
private:
char *p; //字符型指针,用于指向字符串
};
String::String(char *str)
{
p = str; //使P指向实参字符串
}
void String::display()
{
cout << 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(string1.p,string2.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 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("Hello"),string2("Book"),string3("Computer"),string4("Hello");
compare(string1,string2);
compare(string2,string3);
compare(string1,string4);
system("PAUSE");
return 0;
}