首页 > 试题广场 >

假定MyClass为一个类,则该类的拷贝构造函数的声明语句是

[单选题]
假定MyClass为一个类,则该类的拷贝构造函数的声明语句是
  • MyClass(const MyClass x)
  • MyClass &(const MyClass x)
  • MyClass(const MyClass &x)
  • MyClass(const MyClass *x)
拷贝构造函数 MyClass(const MyClass & x);
赋值运算符 MyClass operator= (const MyClass & x);
析构函数 ~MyClass();

发表于 2016-09-29 15:40:17 回复(1)
更多回答
推荐
【正确答案】C
【解析】拷贝构造函数的参数必须使用引用传递,并且使用 const 修饰。
使用引用是因为,如果不使用引用,那么调用时参数赋值时又会调用拷贝构造函数,就行程了死递归,并且使用引用还能减少数据的拷贝。
使用 const 是因为防止在函数内对原先的数据进行修改。

拷贝构造函数知识点讲解】
更多C++基础专业知识讲解,点击链接即可查看
https://www.nowcoder.com/link/zxyl-cpp20
编辑于 2021-11-17 15:21:17 回复(0)
拷贝构造函数如果值传递 就需要将传进来的实参,拷贝给形参,这里又一次调用了拷贝构造。导致拷贝构造函数不停递归下去......
发表于 2020-05-07 20:34:44 回复(0)
答案:选C
拷贝构造函数的形参不限制为const,但是必须是一个引用,以传地址方式传递参数,否则导致拷贝构造函数无穷的递归下去,指针也不行,本质还是传值。
编辑于 2021-11-17 15:21:17 回复(2)
答案:C
拷贝构造函数形参是引用数据类型,死规定,记住
发表于 2015-01-26 20:47:40 回复(1)
拷贝构造函数就是为了防止浅拷贝,所以必须通过引用来传地址,最好是常引用,可以保证地址不被改变
发表于 2016-03-17 23:23:42 回复(1)

拷贝构造函数是一种特殊的构造函数,用于使用同一类其他对象创建新对象的方法。它通常以引用作为参数,其目的是将现有对象的值复制到新对象中。因为拷贝构造函数使用引用作为参数,所以在拷贝构造函数中对实参的修改也会影响到原始对象。

因此,选项 C 是正确的拷贝构造函数声明语句。选项 A 是接受参数时会调用拷贝构造函数的语句,但并不是拷贝构造函数本身,选项 B 不是一个有效的拷贝构造函数声明,选项 D 中也使用了指针而非引用,因此也不符合拷贝构造函数的函数签名要求。

发表于 2023-10-19 17:26:09 回复(0)
拷贝构造函数的参数必须使用引用传递,并且使用const修饰。
发表于 2022-06-21 08:25:25 回复(0)
D是传指针的普通的构造函数
发表于 2021-11-05 08:37:29 回复(0)
形如  MyClass a=b 
隐式调用拷贝构造函数,与D矛盾
发表于 2021-09-01 21:53:12 回复(0)
拷贝构造函数的形参一定是要用,这是死记硬背。
理解记忆:要拷贝一个类,如果这个类很大,确实应该使用引用来避免形参拷贝,加快运行速度,最好也要加上const防止原类被更改
发表于 2021-08-01 12:07:19 回复(0)
拷贝构造函数 MyClass(const MyClass & x);
发表于 2019-10-23 09:50:09 回复(0)
拷贝构造函数的第一个参数必须是引用类型,不要求必须是const引用,但是大多数情况下是const引用。
发表于 2019-06-04 17:43:12 回复(0)
拷贝构造函数的形参传入必须是个引用,前面的const可加可不加,但是形参传入必须为引用&
发表于 2018-07-06 16:13:39 回复(0)
拷贝构造函数的形参是引用类型,记住记住
发表于 2017-11-02 21:21:28 回复(0)
我把这个题看成java的了
发表于 2016-09-24 16:06:33 回复(0)
拷贝构造函数也是构造函数,所以没有返回值。参数是类型的引用,可以在参数前加上const关键字,以增强程序文件的健壮性。
发表于 2016-05-20 14:22:43 回复(0)