不是不是我记错了,const不能被修改,刚以为在内存里可以改的,后来试了一下从地址上强制赋值还是不行,这个方法是用来强改类成员函数的,记错了不好意思,const是常量,常量就没有被修改的可能,const函数里也不能被修改
当然可以,关键你是怎样定语的。用mutable定义的可以修改;(第一种)
effect c++的第21条,
bool CBox::operator>(const CBox& aBox) const
中两个 const
第一个 使参数aBox的值不被修改,
这种参数调用形式,是为了提高运行效率,因为这样就比 (CBox aBox)这种值的调用方式省去了,
参数进出栈的开销,而const的修饰,就确保了aBox不会被修改
第二个 是对函数的修饰
在CBox的赋值函数中类的成员变量不会被修改
这种使用方式只适用于类的成员函数.
可是这段程序是cBox的赋值操作函数,又用const做这种修饰,不大何时