函数+const能修改const对象吗?

什么手段,还有就是我怎么才能修改const函数里面的对象
2025-04-29 07:05:22
推荐回答(3个)
回答1:

不是不是我记错了,const不能被修改,刚以为在内存里可以改的,后来试了一下从地址上强制赋值还是不行,这个方法是用来强改类成员函数的,记错了不好意思,const是常量,常量就没有被修改的可能,const函数里也不能被修改

回答2:

当然可以,关键你是怎样定语的。用mutable定义的可以修改;(第一种)
effect c++的第21条,

回答3:

bool CBox::operator>(const CBox& aBox) const
中两个 const
第一个 使参数aBox的值不被修改,
这种参数调用形式,是为了提高运行效率,因为这样就比 (CBox aBox)这种值的调用方式省去了,
参数进出栈的开销,而const的修饰,就确保了aBox不会被修改

第二个 是对函数的修饰
在CBox的赋值函数中类的成员变量不会被修改
这种使用方式只适用于类的成员函数.
可是这段程序是cBox的赋值操作函数,又用const做这种修饰,不大何时