Re[3]: const в D, требуется помощь клуба.
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.07.05 21:06
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Я ж про это и говорю.


CS>
CS>const char[] - immutable.
CS>      char[] - mutable. 
CS>


immutable — это характиристика типа. const же всего лишь предохраняет от модификации переменной.


CS>В C# и Java проблема (проблема ли?) — нет понятия deep immutable:

CS>
CS>int foo(in MyClass cls)
CS>


CS>in защищает от изменения переменную cls в вызывающей процедуре

CS>но сам объект передаваемый — конем гуляй по нему.

Объект или передается по значению и тогда хоть обмодифицируйся. Или по ссылке. При этом возмжность модификации объекта зависит от того ползволяет ли он себя модифицировать.

Например, попроубуй изменить в C# строку или значение типа DateTimr.

CS>const MyClass& cls в C++ означает что для cls объекта в классе

CS>MyClass подавлены все изменяющие методы.

Нет. cls означет, что ссылка недопускает модфикации объекта. В то же время всегда можно создать новую ссылку или указатель и модифицировать через него тот же объект. Модифицировать же immutable-объект невозможно.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.