编写类的String的构造函数,析构函数和赋值函数。

编写类的String的构造函数,析构函数和赋值函数,已知类String的原型为:

class String
{
public:
	String(const char* str = NULL);
	String(const String& other);
	~String(void);
	String& operator=
		(const String& other);
private:
	char* m_data;

};

构造函数:

String::String(const char* str)
{
	if (str == NULL)
	{
		m_data = new char[1];
		*m_data = '/0';
	}
	else
	{
		int length = strlen(str);
		m_data = new char[length + 1];
		strcpy(m_data, str);
	}

}

析构函数:

String::~String(void)
{
	delete m_data;
	m_data = NULL;
}

拷贝构造函数:

String::String(const String& other)
{
	int length = strlen(other.m_data);
	m_data = new char[length + 1];
	strcpy(m_data, other.m_data);
}

赋值函数:

String& String::operator=(const String& other)
{
	if (this == &other)
		return *this;
	delete []m_data;
	int length = strlen(other.m_data);
	m_data = new char[length + 1];
	strcpy(m_data, other.m_data);
}
posted @ 2020-01-14 18:13  cosefy  阅读(527)  评论(0编辑  收藏  举报