1. h文件
#ifndef _STR_H_
#define _STR_H_
#include <iostream>
using namespace std;
class String
{
public:
String(); //默认构造函数
String(const char*s); //普通构造函数
String(const String& s); //复制构造函数
String& operator=(char* s); //重载=,实现字符串赋值
String& operator=(const String& s); //重载=,实现对象赋值
~String(); //析构函数
char& operator[](int i); //重载[],实现数组运算
const char& operator[](int i) const; // 重载[],实现数组运算,对象为常量
String&operator+(const String& s);
String& operator+=(const String& s); //重载+=,实现与对象相加
String& operator+=(const char* s); //重载+=,实现与字符串相加
friend ostream& operator<<(ostream& out, String& s); //重载<<
friend istream& operator>>(istream& in, String& s); //重载>>
friend bool operator<(const String& left, const String& right); //重载<
friend bool operator>(const String& left, const String& right); //重载>
friend bool operator==(const String& left, const String& right); //重载==
friend bool operator!=(const String& left, const String& right); //重载!