复制构造函数可以写成这样?
时间:2011-12-15
来源:互联网
#define COW_H_
class Cow
{
char name[20];
char *hobby; //hobby(业余爱好);
double weight; //重量;
public:
Cow();
Cow(const char *nm,const char *ho,double wt);
Cow(const Cow c&);
~Cow();
Cow &operator=(const Cow &c);
void ShowCow()const; //diaplay all cow data(显示cow所有的数据);
};
#endif
我在书上看了个习题给了这样的类声明
Cow(const Cow c&);这什么意思啊
作者: xuefeng7260 发布时间: 2011-12-15
作者: W170532934 发布时间: 2011-12-15
作者: xuefeng7260 发布时间: 2011-12-15
作者: milkylove 发布时间: 2011-12-15
Cow(const Cow c&)和Cow(const Cow &c);效果一样吗?
不一样,第一种写法是错误的。
作者: pathuang68 发布时间: 2011-12-15
你用的什么编译器,编译没有报错么?
用的VS2010 我看C++primer plus的426页给的类声明是Cow(const Cow c&)编译器貌似不通过
作者: xuefeng7260 发布时间: 2011-12-15
是错的 Cow&和Cow*一样是一种变量类型
作者: sryan 发布时间: 2011-12-15
引用 2 楼 xuefeng7260 的回复:
Cow(const Cow c&)和Cow(const Cow &c);效果一样吗?
不一样,第一种写法是错误的。
++
作者: neolyao 发布时间: 2011-12-15
作者: milkylove 发布时间: 2011-12-16
Cow(const Cow c&);是复制构造函数。传递的参数是类Cow的对象的引用。至于为什么会用const,那是因为引用可以改变属性值。所以加const,禁止用户私自修改参数的值。还有就是传递引用可以减少调用其他的构造函数,提升效率。
加const另外一个比较重要的原因是
const Cow &会绑定右值的临时对象 而Cow &不行
作者: Demon__Hunter 发布时间: 2011-12-16
Cow(const Cow c&);//复制构造函数
作者: cxxer 发布时间: 2011-12-16
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28