博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己实现c++中string 类
阅读量:6005 次
发布时间:2019-06-20

本文共 1185 字,大约阅读时间需要 3 分钟。

 

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];// 得分点:对空字符串自动申请存放结束标志'\0'的,加分点:对m_data加NULL判断  		*m_data = '\0';	}	else	{		int length = strlen(str);		m_data = new char[length + 1];// 若能加 NULL 判断则更好		strcpy(m_data, str);	}}// String的析构函数  String::~String(void){	delete[] m_data; // 或delete m_data;  }//拷贝构造函数  String::String(const String &other)// 得分点:输入参数为const型  {		 	int length = strlen(other.m_data);	m_data = new char[length + 1];// 若能加 NULL 判断则更好  	strcpy(m_data, other.m_data);}//赋值函数  String & String::operator = (const String &other) // 得分点:输入参数为const型  {	if (this == &other)//得分点:检查自赋值  		return *this; 	if (m_data)	    delete[] m_data;//得分点:释放原有的内存资源  	int length = strlen(other.m_data);	m_data = new char[length + 1];//加分点:对m_data加NULL判断  	strcpy(m_data, other.m_data);	return *this;//得分点:返回本对象的引用    }

  

高级版参考:https://blog.csdn.net/u010700335/article/details/40979037

转载于:https://www.cnblogs.com/cthon/p/9147945.html

你可能感兴趣的文章
linux 基础学习之常用命令
查看>>
luoguP3415 祭坛
查看>>
jQuery on()方法
查看>>
代码清单4-4 Person类的部分代码,其中包含了年龄的计算
查看>>
第15章 .NET中的反射
查看>>
学习的第三天
查看>>
python 函数
查看>>
SpringBoot+Redis整合
查看>>
PHP杂记
查看>>
接口测试(三)--HTTP协议简介
查看>>
iOS 从app跳转到Safari、从app打开电话呼叫
查看>>
一些喜欢的句子~
查看>>
线程通信总结
查看>>
jquery 控制 video 视频播放和暂停
查看>>
[Java Web 第一个项目]客户关系处理系统(CRM)项目总结
查看>>
HD-ACM算法专攻系列(23)——Crixalis's Equipment
查看>>
CSS-设置Footer始终在页面底部
查看>>
iOS-登录认证/json解析
查看>>
HDU 3777 Page Count 字符串处理
查看>>
php与html代码的若干转换
查看>>