博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写类String的构造函数、析构函数和赋值函数
阅读量:5944 次
发布时间:2019-06-19

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

  hot3.png

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

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(const char* str){if(NULL == str){m_data = new char[1]; //对空字符串自动申请存放结束标志'\0'的空*m_data = '\0';}else{int length = strlen(str);m_data = new char[length+1]; //分配m_data的空间strcpy(m_data,str);}}

拷贝构造函数

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

析构函数

String::~String(void){ delete []data; //delete data; //两种都可以}

赋值函数

String &String::operate = (const String &other){ if(this == &other) //检查自赋值 return *this; delete [] m_data;int length = strlen(other.m_data); m_data = new char[length+1]; //分配m_data的空间 strcpy(m_data,other.m_data); return *this; //赋值函数毕加上,返回本对象引用}

能够准确无误地编写出String类的构造函数、拷贝构造函数、赋值函数和析构函数的面试者至少已经具备了C++基本功的60%以上!

转自:

转载于:https://my.oschina.net/itfanr/blog/358384

你可能感兴趣的文章
hihoCoder #1078 : 线段树的区间修改(线段树区间更新板子题)
查看>>
php 接口与前端数据交互实现
查看>>
Python多线程运行带多个参数的函数
查看>>
[WF4.0 实战] 事件驱动应用
查看>>
关于”nodejs基于事件驱动”的思考
查看>>
nyoj-20-吝啬的国度(深搜)
查看>>
css hack原理
查看>>
C++关键字之friend
查看>>
ORACLE-SQL(一)
查看>>
http://blog.csdn.net/renfufei/article/details/37725057/
查看>>
maven学习一(HelloWorld工程)
查看>>
C++课程设计类作业4
查看>>
dede列表标签list:应用大全 {dede:list}
查看>>
ios in-house 公布整个过程(startssl认证)
查看>>
Thumb指令集与ARM指令集的差别
查看>>
面试-----关于海量数据问题的处理具体解释
查看>>
OL记载Arcgis Server切片
查看>>
JavaScript表单验证
查看>>
android 随手记之文件+參数上传请求
查看>>
后台进程管理工具---supervisor
查看>>