博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++面试之 类string的构造函数、拷贝构造函数和析构函数
阅读量:7211 次
发布时间:2019-06-29

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

编写类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申请    {       m_data = new char[1];       *m_data='\0';    }else    {        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 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];    strlen(m_data,other.m_data);    return *this;}

注意:

1.拷贝构造函数和等号操作符重载函数参数用“&”表示深拷贝。深拷贝和浅拷贝也是一个重要的知识点.

转载地址:http://ahlum.baihongyu.com/

你可能感兴趣的文章
drop table big_table 调试
查看>>
如何把Eclipse工程导入到Android Studio
查看>>
未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包。
查看>>
Web Design - The Viewport
查看>>
程序员学习能力提升三要素
查看>>
何时使用hadoop fs、hadoop dfs与hdfs dfs命令(转)
查看>>
【Coursera】Third Week(1)
查看>>
管道和重定向笔记
查看>>
C++11 并发指南------std::thread 详解
查看>>
windows下编译chromium浏览器的15个流程整理
查看>>
Android监听返回键、Home键+再按一次返回键退出应用
查看>>
p2p穿透技术
查看>>
BZOJ1841 : 蚂蚁搬家
查看>>
html成绩单表格
查看>>
Coding 初级教程(二)——上传已有项目
查看>>
java 基础
查看>>
【Android】Android6.0发送短信Demo
查看>>
《徐徐道来话Java》:PriorityQueue和最小堆
查看>>
微信支付中的刷卡支付和扫码支付测试
查看>>
中国金融出版社出版的2013版《风险管理》
查看>>