Состояние блокировки велико. В С# вы можете убедиться, что поле не изменит его значение/ссылку после завершения конструктора, объявив его как readonly
.
class Foo
{
private readonly string _foo;
public Foo() {
_foo = "Unchangeable";
}
public void ChangeIt() {
_foo = "Darn"; // compiler error
}
}
Могу ли я сделать то же самое с С++? Если да, то как? Если нет, почему бы и нет?