1.先来看这段代码:

MyString::MyString()
{
this->mstr = NULL;
}

MyString::MyString(MyString &str)
{
//用一个对象去初始化另一个对象
this->mstr = new char(strlen(str.mstr) + 1);
strcpy(this->mstr, str.mstr);
}

MyString::~MyString()
{
//if (this->mstr != NULL)
//{
// delete[] this->mstr;
//}
//this->mstr = NULL;
}

MyString& MyString::operator=(MyString &str)
{
/*if (this->mstr != NULL)
{
delete[] this->mstr;
}*/
this->mstr = new char(strlen(str.mstr) + 1);
strcpy(this->mstr, str.mstr);
return *this;
}

MyString MyString::operator+(MyString &str)
{
MyString mString;
mString.mstr = new char(strlen(this->mstr) + strlen(str.mstr) + 1);
strcpy(mString.mstr, this->mstr);
strcat(mString.mstr, str.mstr);
return mString;
}

void main()

{

...

str4 = str3 + str5;

getchar();

}

内容说明: 在”+“重载return的时候会出现一次匿名对象的创建和销毁,调用了copy构造函数来初始化这个匿名对象并且还会被析构释放。

最新文章

  1. Stack与Queue
  2. Crystal Reports 2008(水晶报表) 第一个报表
  3. HDU #3333
  4. Html、Css-----当有文字和图片的时候,需要文字和图片居中,怎么实现?不想文字换行怎么设置
  5. Sublime Text 2 配置及其使用
  6. 使用DBCC SHOW_STATISTICS展示索引的统计信息
  7. BZOJ1345: [Baltic2007]序列问题Sequence
  8. oracle数据库 ORA-12560: 协议适配器错误
  9. ZOJ 3741 Eternal Reality
  10. 初始WebApi 利用WebApi实现基础的CRUD
  11. 可兼容IE的jquery.cookie函数方法
  12. 【LeetCode】94. Binary Tree Inorder Traversal
  13. Android Studio JNI javah遇到的问题
  14. vue axios使用方法
  15. centos7内网源站建设
  16. [Luogu P1516]青蛙的约会
  17. linux新增动态库后可执行程序找不到的问题
  18. w3cscholl的在线代码编辑工具
  19. python内存泄漏,python垃圾手动回收,1
  20. 2017-2018-2 20165233 实验四 Android程序设计

热门文章

  1. Google不支持小于12px字体 终极办法
  2. HDU 1045 (DFS搜索)
  3. 【wikioi】1250 Fibonacci数列(矩阵乘法)
  4. COJ262 HDNOIP201206施工方案
  5. 遍历josn的三种方式
  6. 点击repeater的一个修改事件触发全部repeater每一行的修改事件
  7. 利用Oracle的row_number() over函数消除重复的记录
  8. 记save函数
  9. Java栈与堆一篇好文
  10. QQ、淘宝、阿里旺旺在线网页链接代码及详解 很实用