Class String

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:48:25
class String {
public :
String (const char* str=null);
string (const string &other);
~string();
string &operator=(congst string &other);
operator const char *() const ;
private:
char * m_data;
};

一:请完成上述5个函数:

二请问operater const char * ()const :后面的const有什么作用!

#include <iostream>
#include <cstring>
using namespace std;
class String {
public :
String (const char* str=NULL);
String (const String &other);
~String();
String &operator=(const String & other);
operator const char *() const ;
private:
char * m_data;
};

String::String(const char* str)
{
if(!str)
{
m_data = new char[strlen(str)+1];
memcpy( m_data, str, strlen(str)+1 );
}
else
{
m_data=NULL;
}
}

String::String(const String &other)
{
if(!other.m_data)
{
m_data = new char[strlen(other.m_data)+1];
memcpy( m_data, other.m_data, strlen(other.m_data)+1 );
}
else
{
m_data=NULL;
}
}

String::~String()
{
if(m_data)
{
delete []m_data;
}
}
String &String::operator=(const String & other)
{
if(m_data)