首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

复制构造函数可以写成这样?解决思路

2012-03-30 
复制构造函数可以写成这样?#ifndef COW_H_#define COW_H_class Cow{char name[20]char *hobby//hobby(业

复制构造函数可以写成这样?
#ifndef COW_H_
#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&);这什么意思啊


[解决办法]
Cow(const Cow c&);是复制构造函数。传递的参数是类Cow的对象的引用。至于为什么会用const,那是因为引用可以改变属性值。所以加const,禁止用户私自修改参数的值。还有就是传递引用可以减少调用其他的构造函数,提升效率。

热点排行