拷贝构造函数X::X(X)在C++中是非法的,请解释其原因。
发布网友
发布时间:2023-07-19 04:35
我来回答
共4个回答
热心网友
时间:2024-12-01 15:38
我个人认为拷贝构造函数的形参必须是本类对象的引用,而在此题中是类。
在C++中,下面三种对象需要拷贝的情况。因此,拷贝构造函数将会被调用。
1). 一个对象以值传递的方式传入函数体
2). 一个对象以值传递的方式从函数返回
3). 一个对象需要通过另外一个对象进行初始化
当实现程序时,当一个对象以传递值的方式传入这个函数的时候,拷贝构造函数自动的被调用来生成函数中的对象。如果一个对象是被传入自己的拷贝构造函数,它的拷贝构造函数将会被调用来拷贝这个对象这样复制才可以传入它自己的拷贝构造函数,这会导致无限循环。 也就是递归!
这显然是错误的!所以拷贝构造函数的形参必须是她的对象的引用。
热心网友
时间:2024-12-01 15:39
河北师大软件的再次路过。~
热心网友
时间:2024-12-01 15:39
河北师大的路过
热心网友
时间:2024-12-01 15:40
河北师范的?