高手进来!c++问题!

来源:百度知道 编辑:UC知道 时间:2024/05/29 23:25:30
题目是这个!!!
做道题目出来!!!!
谢谢!!!!!!!

课程设计:
已知String类定义如下:
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=NULL)
{
m_data=new char[1];
m_data[0]='\0';
}
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)
{
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;
}
通用构造函数 如果没有限定STR为null的话 还应该考虑不会NUll的情况!此时除判断我上面写的这个条件外还要加个:
m_data=new char[strlen(str)+1];
strcpy(m_data,str);

在/usr/include/c++/4.3/bits/basic_string文件里,你要多少有多少。