一个 const 问题

duoduo_uk 2008-08-04 06:50:56
弱弱的问一句,这里的const是啥意思?

double DataBase::getRate() const {

...
...

}

...全文
213 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
常成员函数,不能修改成员变量的值
e_sharp 2008-08-05
  • 打赏
  • 举报
回复
const成员函数,表示该成员函数不会修改类成员

[Quote=引用 1 楼 yahreso 的回复:]
该函数为常成员函数,此函数中不能修改类的成员变量,并且只有常成员函数才能对常成员变量进行操作。
[/Quote]

说的不对,常成员变量,就是谁都不可以修改,常成员函数当然也没有这个特权。
赵Andy 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 elegant87 的回复:]
引用 1 楼 yahreso 的回复:
该函数为常成员函数,此函数中不能修改类的成员变量,并且只有常成员函数才能对常成员变量进行操作。

const 型的函数,不能修改类的成员变量!这样很好的!
[/Quote]
其中说的修改就是,不能用该函数修改成员变量的值。
taojian_hhu 2008-08-05
  • 打赏
  • 举报
回复
该函数在类中肯定声明为double getRate() const ;我们知道类的成员函数肯定是由该类的一个对象来调用的,而每个类对象都有一个隐含的this指针,在成员函数声明后面加上const表示this被隐式的声明为const YourClassName* this.不加const时则为YourClassName* this。
hahaysw 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 duoduo_uk 的回复:]
引用 1 楼 yahreso 的回复:
该函数为常成员函数,此函数中不能修改类的成员变量,并且只有常成员函数才能对常成员变量进行操作。


不好意思,再问一句,这里的操作是什么意思?修改?常成员变量不是不让修改吗?

另外,回楼上的,我试图在c++ primer里找,唉,恕我愚钝,没有找到。哪位大侠要是发现,烦请告诉一声,多谢了。
[/Quote]
厄,这个是const函数,不是const成员。类中的const变量的确不能修改。但是非const变量可以修改。

在const函数中,不管类成员变量是否为const,都不能修改。

另外,类的const对象只能访问const函数。非const对象可以访问const函数,也可以访问非const函数。
laiwing 2008-08-05
  • 打赏
  • 举报
回复
第10章节(P475)
你要好好看一遍这本书才行
duoduo_uk 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yahreso 的回复:]
该函数为常成员函数,此函数中不能修改类的成员变量,并且只有常成员函数才能对常成员变量进行操作。
[/Quote]

不好意思,再问一句,这里的操作是什么意思?修改?常成员变量不是不让修改吗?

另外,回楼上的,我试图在c++ primer里找,唉,恕我愚钝,没有找到。哪位大侠要是发现,烦请告诉一声,多谢了。
elegant87 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yahreso 的回复:]
该函数为常成员函数,此函数中不能修改类的成员变量,并且只有常成员函数才能对常成员变量进行操作。
[/Quote]
const 型的函数,不能修改类的成员变量!这样很好的!
fred_fu 2008-08-04
  • 打赏
  • 举报
回复
關注一下。不知在C++primer中有提到沒,LZ可以查找一下。
yahreso 2008-08-04
  • 打赏
  • 举报
回复
该函数为常成员函数,此函数中不能修改类的成员变量,并且只有常成员函数才能对常成员变量进行操作。

33,319

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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