关于const 成员函数

acreep 2003-10-20 02:29:26
初学C++
下面的代码:
const Stock land = Stock("Kdjfi Aksdo");
land.show();
编译器将拒绝第2行
因为show()得代码无法确保调用对象不被修改,
我不太明白,谁能给我讲讲

...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
acreep 2003-10-20
  • 打赏
  • 举报
回复
我明白了 就是说
const Stock land = Stock("Kdjfi Aksdo");表明land是Stock类的常量对象类型
但是
成员函数show()可能会对其改动
所以为了 避免 可能的错误
声明void show() const;
此时show()函数 就不能改变它得成员了
谢谢
daizh 2003-10-20
  • 打赏
  • 举报
回复
void show();
const Stock:: show();
这样的声明和定义当然不对,显然它们的类型不一致。如果你要实现上述功能,show函数的声明就是void show() const;
acreep 2003-10-20
  • 打赏
  • 举报
回复
书上说应该是这样写
void show() const;
acreep 2003-10-20
  • 打赏
  • 举报
回复
我还是不太明白
我的声明和函数的头文件这样写:
void show();
const Stock:: show();
会有什么隐患吗?
daizh 2003-10-20
  • 打赏
  • 举报
回复
const Stock land = Stock("Kdjfi Aksdo");表明land是Stock类的常量对象类型,它只能使用该类中的const成员,而不能使用其他成员,确保调用对象不被修改。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧