在多线程场景中,我有一个这样的
方法:
bool WaitForChange( time_duration WaitTime ) const;
此方法等待,直到对象的状态发生更改并返回true,或者直到超时超时(您怎么说?)并返回false.
我的直觉是,const是为了防止方法本身不必要的副作用,所以这很好.但话说回来,一些用户可能认为状态不会改变,因为该方法被声明为const.该用户是愚蠢的,还是应该将方法设为非const以避免混淆?
通过将
方法声明为const,您可以说“
调用此
方法不会更改对象的状态”.这(希望)是真的.所以让它成为常量.
如果有人认为,const-ness意味着“在调用此方法时,没有其他人可以改变对象状态”而不是那个人是错误的.