四个默认成员函数分别为(构造、析构、拷贝、赋值)
#include <iostream>
#include <string.h>
using namespace std;
class String
{
char* m_data;
public:
//构造函数
String(void)
{
m_data = new char[1];
m_data = '\0';
}
//有参构造
String(const char* str = NULL)
{
m_data = new char[strlen(str)+1];
strcpy(m_data,str);
}
//拷贝构造
String(const String& other)
{
m_data = new char[strlen(other.m_data)+1];
strcpy(m_data,other.m_data);
}
//析构函数
~String(void)
{
delete[] m_data;
}
//赋值构造
String& operator = (const String &other)
{
if(this !=&other)
{
delete[] m_data;
m_data = new char[strlen(other.m_data)+1];
strcpy(m_data,other.m_data);
}
return *this;
}
friend ostream & operator<<(ostream &,String &);
};
//用于重载操作符<< 直接输出字符串
ostream & operator<<(ostream &os,String & data)
{
os<<data.m_data;
return os;
}