
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.218] |
![]() |
|
Страницы: (245) « Первая ... 222 223 [224] 225 226 ... 244 245 ( Перейти к последнему сообщению ) |
Сообщ.
#3346
,
|
|
|
Видели, понимают и отвергают - D_KEY уже цитировал из книжки по Java. |
Сообщ.
#3347
,
|
|
|
Цитата --Ins-- @ Потому что они доселе это не видели и не понимают как это работает, и как-то не особо скрывают этого. Есть какие-то обрывочные сведения через призму своего восприятия, но когда узнают детали - удивляются, вот как сейчас - в десятый раз как в первый Как-то ты довольно сурово про паскалистов/дельфистов. Я всё-таки надеюсь, что у них ситуация получше и не всё потеряно |
Сообщ.
#3348
,
|
|
|
Да. Правда сначала я удивился, если быть честным. |
![]() |
Сообщ.
#3349
,
|
|
Не спорю, но Указатель же просто хранит адрес. Если там будет другой объект, какая разница, это же просто участок памяти? Как рантайм узнает, можно ли по этому указателю обратиться или нет, если там будет другой объект? |
Сообщ.
#3350
,
|
|
|
Да ради бога ![]() ![]() ![]() |
![]() |
Сообщ.
#3351
,
|
|
Цитата --Ins-- @ И там, где ты начнешь плодить фабрики или приватные конструкторы с кучей параметров, я запилю один виртуальный метод Пример можно? |
Сообщ.
#3352
,
|
|
|
Цитата --Ins-- @ И там, где ты начнешь плодить фабрики или приватные конструкторы с кучей параметров, я аккуратно разложу детские грабельки fixed |
Сообщ.
#3353
,
|
|
|
Цитата korvin @ Если там будет другой объект или вообще память будет отдана ОС, то вероятность получить AV или какую другую радость возрастает по моим субъективным ощущениям. Если там будет другой объект, какая разница, это же просто участок памяти? |
Сообщ.
#3354
,
|
|
|
Цитата korvin @ Как рантайм узнает, можно ли по этому указателю обратиться или нет, если там будет другой объект? Ес-но никак. Это же невалидная ссылка и результат непредсказуем. В лучшем случае - AV |
Сообщ.
#3355
,
|
|
|
Цитата OpenGL @ Цитата --Ins-- @ И там, где ты начнешь плодить фабрики или приватные конструкторы с кучей параметров, я запилю один виртуальный метод Пример можно? Кстати, мы с нетерпением ждём. |
Сообщ.
#3356
,
|
|
|
Цитата OpenGL @ Пример можно? Можно. У базового класса есть какое-либо поле, оно нужно в именно этом классе, т.к. его методы к нему обращаются. Значение этого поля у разных потомков должно быть различным, т.е. создать его в конструкторе нашего базового - нельзя, это нужно делегировать потомкам. Более того, его может быть придется не только создать, но и проинициализировать тоже по-разному, например если это контейнер - заполнить его значениями и т.д. Используя полиморфное конструирование я сделаю в конструкторе вызов MyField := CreateMySuperPuperField(); - где последний - виртуальный абстрактный метод. Без этого тебе придется городить фабрику и обязать клиентов создавать экземпляры только с помощью фабрик. А у меня сам конструктор - это фабрика |
Сообщ.
#3357
,
|
|
|
Цитата --Ins-- @ Зато это зачастую удобно ![]() Писать это может и удобно. А разбираться, читать, понимать, сопровождать, рефакторить это? А то с таким подходом, зачем вообще все эти парадигмы и паттерны, ООП разные нужны? Почему вы просто не пишите глобальные функции/процедуры/переменные, зачем плодить разные классы виртуальные конструкторы/деструкторы, шаблоны какие то, проектировать что то? Проще вообще все в одной функции написать и не парить мозг ![]() |
Сообщ.
#3358
,
|
|
|
Цитата Wound @ А то с таким подходом, зачем вообще все эти парадигмы и паттерны, ООП разные нужны? Так это и есть паттерны - инстанцирующие, всякие там фабрики, фабричные методы и т.д. Только реализованы не так, как ты бы сделал в с++. А что, паттерны накладывают какие-то ограничения на реализацию? |
Сообщ.
#3359
,
|
|
|
Цитата --Ins-- @ Так это и есть паттерны - инстанцирующие, всякие там фабрики, фабричные методы и т.д. Только реализованы не так, как ты бы сделал в с++. Да, и зачем это все использовать, если проще написать все в одной функции. Меньше букв. Цитата --Ins-- @ А что, паттерны накладывают какие-то ограничения на реализацию? Ну по вашей логике - да. Это же городить фабрики разные придеца, вместо создания одного вирт. метода. |
Сообщ.
#3360
,
|
|
|
Цитата Wound @ Ну по вашей логике - да. Это же городить фабрики разные придеца, вместо создания одного вирт. метода. Нет, по моей логике я просто выбрал для них более простую реализацию с меньшим количеством ограничений для конечного пользоваеля моего класса. Он будет как и раньше вызывать конструктор, не зная что под капотом там работает полиморфизм ![]() |