String类是C++模板库中的一个方法类,书写其基本方法是考验C++初学者一个很经典的考题,如果注意细节、写的完美的话也不是那么容易的,写个博客加强一下记忆。
//基本String类方法
class String
{
public :
String(const char* str = NULL);
String(const String &other);
~String();
String &operator=(const String& rhs);
void Show();
private:
char* m_data;
};
//方法实现:
String::String(const char* str)
{
if (str == NULL)
{
m_data = new char[1];
m_data = '\0';
}
else
{
int num = strlen(str);
m_data = new char[num+1];
strcpy(m_data, str);
}
cout << this <<"构造!" << endl;
}
String::~String()
{
delete[] m_data;
m_data = NULL;
cout << this <<"析构" << endl;
}
String::String(const String& other)
{
int len = strlen(other.m_data);
m_data = new char[len+1];
strcpy(m_data, other.m_data);
cout &