String类的实现

来源:互联网 发布:nasa直播软件 编辑:程序博客网 时间:2024/04/30 09:21
已知String类定义如下:

class String
{
public:
String(const char *str = NULL); // 通用构造函数
String(const String &another); // 拷贝构造函数
~ String(); // 析构函数
String & operater =(const String &rhs); // 赋值函数
private:
char *m_data; // 用于保存字符串
};

尝试写出类的成员函数实现。



答案:

String::String(const char *str){ if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断 {   m_data = new char[1] ;   m_data[0] = '\0' ; } else {  m_data = new char[strlen(str) + 1];  strcpy(m_data,str); }}
String::String(const String &another){  m_data = new char[strlen(another.m_data) + 1];  strcpy(m_data,other.m_data);}String& String::operator =(const String &rhs){  if ( this == &rhs)  return *this ;  delete []m_data; //删除原来的数据,新开一块内存  m_data = new char[strlen(rhs.m_data) + 1];  strcpy(m_data,rhs.m_data);  return *this ;}String::~String(){  delete []m_data ;}



 

0 0
原创粉丝点击