知识点
类对象引用
自写复制构造函数
一、 类对象引用
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.cppTdate::Tdate(Tdate &d) //自定义的复制构造函数{ printf("\n进入自定义复制构造函数\n"); Tdate::year=d.year; Tdate::month=d.month; Tdate::day=d.day; //还有需要复制的数据,继续添加 }