Date d3=(1990,3,8);//构造一个对象
Date d1=d3;//调用拷贝构造函数
(1)
Date(const Date d)
{}
分析:
通过d3来创建d1;调用拷贝构造函数
现在这样拷贝的话,就是先通过d3创建一个临时的拷贝d,这个过程也是通过一个已存在的对象创建一个对象,调用拷贝构造函数
不停的调用拷贝构造函数,无穷的递归,程序出错
(2)
Date(const Date& d)
{}
分析:
通过d3来创建d1;调用拷贝构造函数
传引用,d和d3用同一块空间,d相当于是d3的别名
相关文章
- C ++构造函数 - 通过引用传递仅适用于const。为什么?
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
- 从零开始学C++之构造函数与析构函数(二):初始化列表(const和引用成员)、拷贝构造函数
- 拷贝构造函数为什么不能用值传递
- C++ //拷贝构造函数调用时机//1.使用一个已经创建完毕的对象来初始化一个新对象 //2.值传递的方式给函数参数传值 //3.值方式返回局部对象
- C++文件头,命名空间,new和delete,内联函数,引用,函数重载,构造函数和析构函数,深拷贝和浅拷贝,explict,this指针
- 为什么拷贝构造函数必须为引用传递,不能是值传递?
- c++中拷贝构造函数的参数类型必须是引用
- 浅谈为什么拷贝构造函数传引用
- 对象作为函数参数时调用拷贝构造函数、引用做函数参数时只是传递地址