#include<iostream>
using namespace std;
class String
{
public:
String();
String(const char *str=0);
String(const String &other);
String &operator=(const String &other);
~String();
private:
char *m_data;
};
//默认构造函数
String::String()
{
m_data=new char[1];
*m_data=0;
}
//自定义构造函数
String::String(const char *str)
{
if(str==0)
{
m_data=new char[1];
*m_data=0;
}
else
{
m_data=new char[strlen(str)];
strcpy(m_data,str);
}
}
//拷贝构造函数
String::String(const String &other)
{
m_data=new char[strlen(other.m_data)+1];
strcpy(m_data,other.m_data);
}
//析构函数
String::~String()
{
delete [] m_data;
}
//重载赋值运算符函数
String &String::operator=(const String &other)
{
//自检查,防止自己赋值给自己
if(this==&other)return *this;
//删除原来的内存资源
delete [] m_data;
m_data=new char[strlen(other.m_data)+1];
strcpy(m_data,other.m_data);
return *this;
}
字符串类String的设计
最新推荐文章于 2024-07-24 20:55:30 发布