复String类的实现

来源:互联网 发布:单片机开发招聘 编辑:程序博客网 时间:2024/05/22 15:24

一、接口设计

//防卫式定义class String{public:String(const char* cstr = 0);// 构造函数,上面写的事默认值 初值String(const string& str);//拷贝构造String& operator = (const string& str);~String();//析构函数char* get_c_str() {return m_mata;}private :char* m_mata;}; 

二、构造函数和析构函数的设计

inlineString::String(const char* cstr = 0)//构造函数{if(cstr)//传进来的指针是否有东西?{m_data= new char[strlen(cstr)+1];strcpy(m_data,cstr);}else //空的,没有指定初值{m_data=new char[1];*m_data='\0';}}
inlineString::~String()//析构函数{delete[] m_data;}

三、拷贝构造函数

inline
String& String::operator=(const String& str){if(this == &str)  //自我赋值{return *this;}delete[] m_data;m_data = new chat[strlen(str.m_mata)+1];strcpy(m_data,str.m_mata);return *this;}

0 0
原创粉丝点击