打印

常量成员函数问题

[复制链接]
1085|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinadz|  楼主 | 2012-7-26 22:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
火箭球迷| | 2012-7-26 22:50 | 只看该作者
const ClassName * const this;
行为上意味着该函数不能改变this指向对象的数据

使用特权

评论回复
板凳
pkat| | 2012-7-26 22:59 | 只看该作者
const string& get_name() const {return name;},必须这样
const型的成员函数表示这个this是const型指针,所以你无法修改他所指向的内容,lz应该知道const char*你是不能去给他做memcpy的吧,所以你这个成员函数返回name,本质上返回了const string&类型的变量。
但是你如果非要返回一个name的引用,而你又同时希望这个成员函数是const型的,只有一个办法,你把name加
mutable修饰符,mutable修饰符表示即使是在const成员函数里面也能被修改值!

使用特权

评论回复
地板
xsgy123| | 2012-7-26 23:16 | 只看该作者
不要纠结各种常量了,这个世界上唯一不变的就是变化。用API WriteProcessMemory还能修改正运行的其它进程的内存里面的所谓常量呢!

使用特权

评论回复
5
gxgclg| | 2012-7-29 12:30 | 只看该作者
const string& get_name() const {return name;},必须这样
const型的成员函数表示这个this是const型指针,所以你无法修改他所指向的内容,lz应该知道const char*你是不能去给他做memcpy的吧,所以你这个成员函数返 ...
pkat 发表于 2012-7-26 22:59

分析的很有道理

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝