码迷,mamicode.com
首页 > 其他好文 > 详细

以一个类成员函数来说明拷贝构造函数与析构函数何时调用

时间:2015-07-16 02:01:33      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:

mystring operator +(const char *str, const mystring &it)
{
	mystring stro;
	strcpy(stro.s, str);
	strcat(stro.s, it.s);
	printf("stro = %p\n", stro.s);
	return stro;
}

  当return stro时,其实返回的是stro的一个副本.这时就会调用拷贝构造函数.副本stro其实是在为外部使用作准备.会后于原始stro销毁.

  接着,原来的stro销毁,调用析构函数.,析构函数释放的其实是mystring stro,也就是原始stro的内存

     最后,当外部使用完stro的副本时,再调用析构函数,释放stro的副本.其实也就是释放拷贝构造函数生成的stro

 

 

副本就是拷贝构造函数所生成的.

以一个类成员函数来说明拷贝构造函数与析构函数何时调用

标签:

原文地址:http://www.cnblogs.com/c-slmax/p/4649930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!