Date(const Date d) { _year = d._year; _month = d._month; _day = d._day;}无限递归调用的原因
时间: 2024-05-19 10:12:16 浏览: 192
第二次过程测试参考答案_c_teacher_
这段代码中的问题在于函数的参数是按值传递的,也就是说在函数调用时会创建参数的一个副本,而这个副本的初始化需要调用拷贝构造函数,而函数的参数又是一个对象,因此会不断递归调用拷贝构造函数,导致无限递归调用。
可以修改代码来避免这个问题,可以将函数的参数改为按引用传递,即将参数声明为 "const Date& d",这样在函数调用时不会创建副本,也不会无限递归调用拷贝构造函数。
阅读全文