您的位置:首页 > 其它

7.1.19 已知string类的定义,给出函数实现

2014-08-19 19:47 316 查看
class String{

public:

String(const char* str=NULL);

String(const String& another);

~String();

String& operator=(const String& rhs);

private:

char* m_data;

};

//实现:

String::String(const char*str){//默认参数声明里写,不要在定义里写。

if(str==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,another.m_data);

}

String::~String(){

delete[] m_data;

}

String& String::operator=(const String& rhs){//String::命名空间是用来修饰函数名的,好久不编都忘了。。

delete[]m_data;

m_data=new char[strlen(rhs.m_data)+1];

strcpy(m_data,rhs.m_data);

return *this;

}
strlen(),strcpy()在#include<cstring>。

m_data=new char[strlen(str)+1];

C++类需要复习。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐