知识点
类对象引用
自写复制构造函数
一、 类对象引用
Tdate d1;
Tdate &d2=d1;
二、自写复制构造函数
Tdate d1;
Tdate d2=d1; //会调用默认复制构造函数 Tdate::Tdate(d1);
通过以上调用我们可以写出复制构造的原型如下
Tdate::Tdate(Tdate d) //但如此定义,新的问题随之而来 ,因为d是按值传送的,在传送的时候会调用默认复制构造函数创建一个副本。如果如上定义那么我们将陷入无休止的循环中。
解决办法就是使用引用。以上函数原型修改后如下:
Tdate::Tdate(Tdate &d) //Tdate d2=d1;中d是对d1的引用
//date.h
Tdate(Tdate &d);//默认复制构造函数说明
//date.cpp
Tdate::Tdate(Tdate &d) //自定义的复制构造函数
{
printf("\n进入自定义复制构造函数\n");
Tdate::year=d.year;
Tdate::month=d.month;
Tdate::day=d.day;
//还有需要复制的数据,继续添加
}
转载于:https://blog.51cto.com/dreamylights/1259835