第2题 建立一个字符串类 String , 要求如下: 1) 私有数据成员: • char *str :字符串的首地址。 • int len :字符串的长度值。 2) 公有成员函数 : • 构造函数:动态申请存储字符串所需的内存空间,并且既能用参数指定的字符串也能用默认值 NULL 进行字符串的初始化。 • 拷贝构造函数。 • 析构函数:释放字符串所使用的动态内存空间。 • void set ( char *s) : 为字符串赋新值。 • void show () :显示字符串。 • int getlen() : 返回字符串的长度。 • void delchar(char ch):删除字符串中出现的所有ch 字符。 • String operator –(char ch):重载“-”运算符,实现删除字符串中出现的所有 ch 字符。 • String & operator =(String &):重载 “=”运算符,实现字符串的直接赋值。 • String & operator +=(String &):重载“+=”运算符,实现两字符串的拼接 。 • bool operator ==( String &):重载 “ == ” 运算符,进行两字符串的相等性比较,相等返回 true , 否则返回 false。 3) 友元函数: • friend String operator +( String &,String &):重载“+”运算符,实现两字符串的相加 。 请编写完整的程序,测试类的各成员函数的正确性。