关于为什么拷贝构造函数参数必须使用引用

Data(const Data&d)
		:_year(d._year)
		, _month(d._month)
		, _day(d._day)
	{
	}

我从练习代码里拿来的一个拷贝构造函数
首先要明确一点,拷贝构造函数只有一个函数,而且必须引用传参
如果直接传对象,比如这样

Data(const Data d)
	{}

这里参数的Data d又会实例化一个对象,调用拷贝函数,但是拷贝构造函数被调用后又实例化了一个对象,再次调用了拷贝构造函数,形成无限递归,所以,必须引用嗷,不然没你好果汁吃

你可能感兴趣的:(关于为什么拷贝构造函数参数必须使用引用)