拷贝构造函数的参数的类型只能是引用类型

正确的拷贝构造的函数体格式如下:

       

Date(Date& d)
{
	if(this!=&d)
	{
	_year=d._year;
	_month=d._month;
	_day=d._day;
	

  (1)首先明确一点:除了传引用不是传值外,其余的传参数都是传值。

  (2)如果传参数是传值的话,对象调用类的拷贝函数,从而造成不断递归调用拷贝构造函数。

         具体的过程见图:


(3)如果传引用的话,就没有了中间不断的重复的拷贝构造过程,一次拷贝构造就解决了。

(4)如果不小心写成了传值拷贝构造,编译器会报错

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页