用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

String类的构造函数 析构函数 赋值函数

2013-02-22 作者: 海大软件1102班举报

[c++]代码库

class String
{
public:
	String(const char *str = NULL); // 普通构造函数
	String(const String &other); // 拷贝构造函数
	~ String(void); // 析构函数
	String & operate =(const String &other); // 赋值函数
private:
	char *m_data; // 用于保存字符串
};
// String 的析构函数
String::~String(void) 
{
	delete [] m_data;
	// 由于m_data 是内部数据类型,也可以写成delete m_data;
}
// String 的普通构造函数
String::String(const char *str)
{
	if(str==NULL)
	{
		m_data = new char[1]; // 若能加NULL 判断则更好
		*m_data = ‘\0’;
	}
	else
	{
		int length = strlen(str);
		m_data = new char[length+1]; // 若能加NULL 判断则更好
		strcpy(m_data, str);
	}
}
// 拷贝构造函数
String::String(const String &other) 
{
	int length = strlen(other.m_data);
	m_data = new char[length+1]; // 若能加NULL 判断则更好
	strcpy(m_data, other.m_data);
}
// 赋值函数
String & String::operate =(const String &other)
{
	// (1) 检查自赋值/
	if(this == &other)
		return *this;
	// (2) 释放原有的内存资源
	delete [] m_data;
	// ()分配新的内存资源,并复制内容
	int length = strlen(other.m_data);
	m_data = new char[length+1]; // 若能加NULL 判断则更好
	strcpy(m_data, other.m_data);
	// ()返回本对象的引用
	return *this;
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...