示例类:
int i;
void Classname::a1(const Classname& var){
var.a2(*this);
}
void Classname::a2(const Classname& var){
var.i = 100;
}
如何在不向 a2 添加 const 的情况下使它工作?
最佳答案
简短的回答 - 你不应该。
var
是const
,这意味着您根本不应该对其进行任何更改;var.i=100
会给其他人带来意想不到的后果。更长的答案 - 删除
const
,或使i
可变。mutable
关键字表示即使对象是const
也可以更改变量。或者,通过使其成为非const
,您可以更改它,人们可以期望他们的对象被修改。非常讨厌的答案 - 抛弃
const
-ness。我什至不打算充实这部分,因为它太可怕了,这样做会导致 a velocoraptor attacking you where you sit .
关于C++ 将此传递给非 Const 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105047/