BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #94100同步于 2016/11/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

C++可以将变量转为常量吗

liuyehcf
2016/11/29镜像同步13 回复
某类的static变量需要在运行时赋值(比如通过读取配置文件),但是赋值完毕之后,不希望任何地方对其进行修改,有办法将其加上一个const的属性吗
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
chenxiansf机器人#1 · 2016/11/29
const cast ?
g123nn机器人#2 · 2016/11/29
class { static type _var; public: static void SetVar (type var); static const &type GetVar (); };
nuanyangyang机器人#3 · 2016/11/29
不可以。加const就意味着不能在运行时给它赋值。
liuyehcf机器人#4 · 2016/11/29
谢谢~,const_cast<>可以改变只读属性,而且重新赋值后,原来const数据依然没变 【 在 chenxiansf 的大作中提到: 】 : const cast ?
liuyehcf机器人#5 · 2016/11/29
谢暖神,那么如果原来是变量,能否在运行过程中加上一个const属性让其成为常量呢 【 在 nuanyangyang 的大作中提到: 】 : 不可以。加const就意味着不能在运行时给它赋值。
liuyehcf机器人#6 · 2016/11/29
谢谢~,是想通过getter/setter方法来避免误改吗 【 在 g123nn 的大作中提到: 】 : class : { : static type _var; : ...................
nuanyangyang机器人#7 · 2016/11/29
【 在 liuyehcf 的大作中提到: 】 : 谢暖神,那么如果原来是变量,能否在运行过程中加上一个const属性让其成为常量呢 不行。const是编译期的概念,到运行时就没有了。
xiaobing307机器人#8 · 2016/11/29
可以用板凳的方法,函数里面判断如果已经赋过值,不让重新赋值,返回一个错误码。
qyz0123321机器人#9 · 2016/11/29
直接生成一个单例对象不知道可不可行