Re[8]: winapi - ООП или нет
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.05.07 04:06
Оценка:
Здравствуйте, konsoletyper, Вы писали:


K>Нет, не объект. Всё-таки даже в не всё должно быть объектом. Например, числа никогда объектами не являются.

Ничего подобного. С точки зрения практической реализации — да, числа объектами не являются.
Однако с точки зрения теории кристалла, никаких препятствий к тому, чтобы сделать числа объектами, нет.
Для этого достаточно сделать их immutable, и считать, что все четыре миллиарда значений int32 кем-то были созданы еще до начала работы программы.
В переменных хранятся ссылки на эти значения. Все операции с интами возвращают указатель на подходящий инт.

K>Если мы объявляем переменную типа int, то мы потом можем сколько угодно раз изменять её. Но мы не можем, присовив этой переменной, скажем, единицу, изменить саму единицу. Единица в данном случае — нечто целое и неделимое.

Да-да, единица — это некоторый объект класса Int32. Отличается от всех остальных объектов этого класса тем, что результат x.Multiply(1) для любого x будет по-прежнему равен x.


K>Приведу пример с теми же матрицами. Если матрицу сделать объектом, то матрица должна быть изменяемой.

Не обязательно. Запросто можно заставить матрицу быть неизменной. Если изменяем компонент — мы получаем новую матрицу.

K>Если же рассматривать матрицу как значения типа Matrix, то указанные проблемы отпадают. Правда, появляется проблема с тем, что Matrix — неизменяемое значение. Но это легко исправить, введя объект типа MatrixBuilder.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.