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

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

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

 

转载于:https://www.cnblogs.com/dangeal/p/7839595.html

你可能感兴趣的文章
C++ extern c 用法
查看>>
VC中字符串由于版本不同而导致的错误问题
查看>>
分布式缓存技术redis学习(一)——redis简介以及linux上的安装
查看>>
为什么kafka使用磁盘而不是内存
查看>>
创立一个站点的前前后后(起因,域名,云平台,备案,CDN等等)(1)
查看>>
天朝git的使用
查看>>
什么是 HTTPS
查看>>
BPF and eBPF linux
查看>>
如何解决MySQL在高版本需要指明是否进行SSL连接问题
查看>>
[PAL算法说明]SAP HANA PAL线性回归预测分析Linear Regression算法说明LRREGRESSION
查看>>
JAVA学习课第二十八届(多线程(七))- 停止-threaded多-threaded面试题
查看>>
Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
查看>>
我的vim配置
查看>>
C#获取微信二维码显示到wpf
查看>>
时间戳和字符串之间的互相转换
查看>>
Android Studio导入第三方类库的方法
查看>>
oracle学习总结3
查看>>
041 添加分区以及分析函数和窗口函数
查看>>
The type Date is ambiguous
查看>>
MVC 5使用ViewBag(对象)显示数据
查看>>