求助 一道编程题!

来源:百度知道 编辑:UC知道 时间:2024/06/14 23:21:07
设计一个字符串类MyString ,具有构造函数析构函数'拷贝构造函数'重载运算符+'='+='[],尽可能地完善它,使之能满足各种需要.

谢谢啊!!

#include<iostream.h> //包含输入输出库
#include<string.h> //包含字符串类库
class person //自定义类 person
{
public: //公有声明部分
person(char *pn); //构造函数声明
person(person &p); //拷贝构造函数声明
~person(); //析构函数声明
private: //私有声明部分
char *pname; //定义字符指针pname
};
person::person(char *pn) //构造函数实现部分
{
cout<<"构造函数: "<<pn<<endl; //cout是标准输出函数(格式:cout<<变量名<<变量2),输出(构造函数:...),...部分显示pn里存储的字符串,endl是输出一个换行符。
pname=new char[strlen(pn)+1]; //为pname开辟空间长度为pn字符串的长度加一,多出一位用来存储‘\0’这是字符串结束标志。
if(pname!=0) //空间分配失败则panme==0;pname!=0则说明分配成功。
strcpy(pname,pn); //将pn的值 赋给 pname
}
person::person(person &p) //拷贝构造函数实现部分
{
cout<<"拷贝 "<<p.pname<<" 到新的堆空间\n";// 输出被拷贝的person对象的值
pname=new char[strlen(p.pname)+1]; //同构造函数,分配空间
if(pname!=0) //判断是否分配成功
strcpy(pname,p.pname); //拷贝字串
}
person::~perso