博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++常见题目,编写string类
阅读量:4069 次
发布时间:2019-05-25

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

代码如下:

#include 
#include
using std::cout;using std::endl;class String{ public: String(const char *src = NULL);//构造函数 String(const String &other);//拷贝构造函数 ~String(void);//析构函数 String & operator =(const String &other);//赋值函数 void ShowString(); private: char *m_data;};//String 的构造函数String::String(const char *src){ if(src == NULL)//当初始化串不存在的时候,为m_data申请一个空间存放'\0'; { m_data = new char[1]; *m_data = '\0'; } else//当初始化串存在的时候,为m_data申请同样大小的空间存放该串; { int length = strlen(src); m_data = new char[length+1]; strcpy(m_data,src); }}//析构函数String::~String(){ delete [] m_data;//析构函数释放地址空间}//拷贝构造函数 ,功能与构造函数类似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); return *this;}void String::ShowString()//由于m_data是私有成员,对象只能通过public成员函数来访问{ cout<
m_data<

参考文献:

[1] http://blog.csdn.net/xiaobo620/article/details/7396552

你可能感兴趣的文章
javascript传参字符串 与引号的嵌套调用
查看>>
swiper插件的的使用
查看>>
layui插件的使用
查看>>
JS牛客网编译环境的使用
查看>>
9、VUE面经
查看>>
关于进制转换的具体实现代码
查看>>
Golang 数据可视化利器 go-echarts ,实际使用
查看>>
mysql 跨机器查询,使用dblink
查看>>
mysql5.6.34 升级到mysql5.7.32
查看>>
dba 常用查询
查看>>
Oracle 异机恢复
查看>>
Oracle 12C DG 搭建(RAC-RAC/RAC-单机)
查看>>
Truncate 表之恢复
查看>>
Oracle DG failover 后恢复
查看>>
mysql 主从同步配置
查看>>
为什么很多程序员都选择跳槽?
查看>>
mongdb介绍
查看>>
mongdb在java中的应用
查看>>
区块链技术让Yotta企业云盘为行政事业服务助力
查看>>
Yotta企业云盘更好的为媒体广告业服务
查看>>