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