⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 string.cpp

📁 高永强 全C编程源码 清华大学出版社 2002年六月第一版
💻 CPP
字号:
//这个程序在本书所带软盘中,文件名为STRING.CPP
//这个程序演示相加运算符重载、逻辑运算符重载以及输出重载在程序中的应用。

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

enum boolean {false, true};

class String {
	friend ostream& operator << (ostream& out, String obj);	
										//输出重载
	public :
		String( char* str )
		{
			strcpy(String::str, str); 
		}
		String operator + (String obj)  //相加运算符重载进行字符串连接
		{
			String temp("\0");
			strcpy(temp.str, str);		//复制调用这个子程序的成员字符串
			return strcat(temp.str, obj.str); 
		}								//连接两个字符串并返回结果
		boolean operator != (String obj)	//逻辑运算符!=重载
		{
			if (strcmp(str, obj.str))
				return true;
			else
				return false;
		}
	private:
		char str[80];
};

ostream& operator << (ostream& out, String obj )
{
	out << obj.str << endl;
	return out;
}

void main(void)
{
	String string1("operator "), string2("overloading"), string3("\0");

	if (string1 != string2)
	{
		cout << "两个对象的成员字符串不相等。" << endl;
		cout << "string1 = " << string1 << "string2 = " << string2 << endl;
	}
	else {
		cout << "两个对象的成员字符串相等。" << endl;
		cout << "string1 = string2 = " << string1 << endl;
	}
	string3 = string1 + string2;
	string1 = string1 + string2;

	cout << "连接后的 string1 = " << string1;
	cout << "连接后的 string3 = " << string3;
}

/*这个程序运行后将输出下列结果:
两个对象的成员字符串不相等。
string1 = operator
string2 = overloading

连接后的 string1 = operator overloading
连接后的 string3 = operator overloading
*/

⌨️ 快捷键说明

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