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

学习C++primer(第四版特别版)遇到有关问题

2012-04-10 
学习C++primer(第四版特别版)遇到问题第七章223页有这样一个类成员函数定义看不太明白;bool same_isbn(con

学习C++primer(第四版特别版)遇到问题
第七章223页有这样一个类成员函数定义看不太明白;
bool same_isbn(const Sales_item &rhs) const
{return isbn==rsh.isbn}
其中Sales_item 是一个类,两个const的含义是什么?

[解决办法]
1.函数参数为const,意思是禁止修改引用的对象,引用传递直接传递地址,按值传递会先建立一个对象的副本,在传递过去,所以引用传递比按值传递更有效
2.声明一个成员函数的时候用const关键字是用来说明这个函数是 "只读(read-only)"函数,也就是说明这个函数不会修改任何数据成员(object)。 为了声明一个const成员函数, 把const关键字放在函数括号的后面。声明和定义的时候都应该放const关键字。
任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。


[解决办法]
第一个const也就是rhs不能用作左值

至于第二个const 即该成员函数为const成员函数,把C++primer(第四版特别版)这本书翻到224页会有解释,简单来讲就是 调用该函数的对象不能在此函数中被修改

热点排行