设计一个MyString类,其中包含字符数组变量(大小256

来源:百度知道 编辑:UC知道 时间:2024/06/21 04:04:11
),拷贝构造函数和operator=函数,请写出MyString类的完整声名和函数实现

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

class string
{
public:
string();
string(const string &);
~string();

void operator = (const string &right);

private:
unsigned buflen;
char * buffer;
};

string::string(const string & initstr)
{
buflen=1+strlen(initstr.buffer);
buffer=new char[buflen];
assert(buffer!=0);
for(unsigned i=0;initstr.buffer[i]!='\0';i++)
buffer[i]=initstr.buffer[i];
buffer[i]='\0';
}

string::string()
{
buflen=1;
buffer=new char[buflen];
assert(buffer!=0);
buffer[0]='\0';
}
string::~string()
{
delete []buffer;
buffer=0;
buflen=0;
}

void string::operator = (const string &right)
{
const unsigned rightLength=right.length();
if(right.length()>=buflen)
{
delete []bu