demo_operator_03_b.cpp

来自「对于一个初涉VC++的人来书」· C++ 代码 · 共 101 行

CPP
101
字号

//************************************************
// 定义一个字符串类String,用来存放不定长的字符串,
// 重载运算符"==","<"和">",用于两个字符串的等于,
// 小于和大于的比较运算.
//************************************************

# include <iostream.h>
# include <string.h>

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();
private:
	char *p;
};
 
String::String(char *str)
{
	p=str;
}

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)
	if(string1>string2)
	{
		string1.display();
		cout<<">";
		string2.display();
		cout<<endl;
		return;
	}
//	if(operator<(string1,string2)==1)
	if(string1<string2)
	{
		string1.display();
		cout<<"<";
		string2.display();
		cout<<endl;
		return;
	}
//	if(operator==(string1,string2)==1)
	if(string1==string2)
	{
		string1.display();
		cout<<"=";
		string2.display();
		cout<<endl;
		return;
	}
}

int main()
{
	String string1("Hello"),string2("Book");
	String string3("Computer"),string4("Hello");

	compare(string1,string2);
	compare(string2,string3);
	compare(string1,string4);

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?