Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 416 417 [418] 419 420 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6256
,
|
|
|
|
А я не понял. Если бы я белеберду написал на делфи, то ты бы тоже не понял, а корвин бы допустим понял. И что? Цитата --Ins-- @ О том, куда и где пишется результат - написал D_KEY, на что ты спросил а как в этом случае быть при ветвлении. Получил ответ и затупил окончательно Ппц, это ты тупишь. Я все понял еще когда D_KEY расписал. Потом вы с корвином начали тролить, что там все понятно. Я для корвина расписал что конкретно мне непонятно было в том коде! Что не так? Ну тупи дальше. твое мычание мне ни о чем не говорит |
|
Сообщ.
#6257
,
|
|
|
|
Цитата KILLER @ Ппц, это ты тупишь. Я все понял еще когда D_KEY расписал. Потом вы с корвином начали тролить, что там все понятно. Я для корвина расписал что конкретно мне непонятно было в том коде! Что не так? Ну тупи дальше. Все, выносите! Киллер, напомни, друг, ты никак это сообщение не комментировал?Цитата D_KEY @ А по-моему неплохо, когда функция просто возвращает результат своего последнего выражения Не на него ты возразил по поводу ветвления? |
|
Сообщ.
#6258
,
|
|
|
|
Может хватить уже обсуждать способности друг друга, да еще и меня постоянно упоминать?
По делу-то есть что сказать? |
|
Сообщ.
#6259
,
|
|
|
|
OHSHI. Специально для Киллера перепишу код на конкретном языке (Ruby):
![]() ![]() def f (x) if x == 5 then "five" elsif x == 10 then "ten" elsif x == 0 then "zero" else "wrong number" end end [0, 5, 10, 8].each do |x| puts "#{x} -> #{f(x)}" end => ![]() ![]() ~ $ ruby < ~/demo.rb 0 -> zero 5 -> five 10 -> ten 8 -> wrong number ~ $ |
|
Сообщ.
#6260
,
|
|
|
|
Цитата --Ins-- @ Ктегорически не согласен. Структурный подход оформления кода -- это не какая то фича в вакууме, а она имеет вполне конкретный практический смысл. Например -- повысить читабельность кода. Функция с ретурном где нить в начале всяко лучше читается чем целая иерархия else блоков. Досрочный возврат из функции иногда удобен, так что я в принципе против него тоже ничего не имею, но 1. Он структурному подходу все-таки более чужд 2. Он не необходим - просто иногда с ним проще, чем без него. А иногда, когда когда нужно по-любому заводить переменную для хранения return value - так как-то не особенно |
|
Сообщ.
#6261
,
|
|
|
|
Цитата Повстанець @ Категорически не согласен. Структурный подход оформления кода -- это не какая то фича в вакууме, а она имеет вполне конкретный практический смысл. Например -- повысить читабельность кода. Функция с ретурном где нить в начале всяко лучше читается чем целая иерархия else блоков. Что-то не вижу в чем твое несогласие. Ты несогласен, что в некоторых случаях досрочный выход улучшает читабельность? Вроде согласен? Ты не согласен, что такой выход не соответствует структурному стилю? Не вижу описания этого несогласия. И да, ты прав, структурный стиль не "какая-то фича в вакууме", а вполне конкретная фича, суть которой в отражении оформления кода логической структуре алгоритма, который он описывает. Читабельность при этом не всегда бывает самая лушая. |
|
Сообщ.
#6262
,
|
|
|
|
Цитата --Ins-- @ Все, выносите! Киллер, напомни, друг, ты никак это сообщение не комментировал? Цитата --Ins-- @ Не на него ты возразил по поводу ветвления? --Ins--, ну ты смотрю решил вообще прикинутся полным идиотом? Или на сама деле так тупишь? Ты видимо смысл не понимаешь. Да и не надо, тупи на здоровье, а можешь перечитать. Но тебе тупить легче видимо. Добавлено Цитата korvin @ OHSHI. Специально для Киллера перепишу код на конкретном языке (Ruby): То что ты привел - это хорошо, но не плохо было бы также почитать что пишут. началось все с того, что в делфях чтобы возвратить чтото из функции нужно написать Result = значение, а потом Exit; На что я и заметил что не очень удобно, особенно когда в функции результат может высчитываца разными запутаными сопособами, так как везде придеца этот Result пихать. Еще вопросы есть? |
|
Сообщ.
#6263
,
|
|
|
|
Кстати, сменю тему. Тут еще и c# в теме холивара пристуствует... Может мне кто объяснить идею, почему не наследуются конструкторы с параметром и в классах-потомках их необходимо дублировать? Я что-то действительно не могу понять в чем глубокий смысл
Цитата KILLER @ --Ins--, ну ты смотрю решил вообще прикинутся полным идиотом? Или на сама деле так тупишь? Ты видимо смысл не понимаешь. Да и не надо, тупи на здоровье, а можешь перечитать. Но тебе тупить легче видимо. Неправильно ты дядя Киля обезьянничаешь Если хочешь ответить мне той же монетой, то и нужно как я это делать - не просто назвать тупым, а еще и обосновать почему А то так как будто бы сдался |
|
Сообщ.
#6264
,
|
|
|
|
Цитата --Ins-- @ Может мне кто объяснить идею, почему не наследуются конструкторы с параметром и в классах-потомках их необходимо дублировать? Я что-то действительно не могу понять в чем глубокий смысл Не знаю. Но допустим такую ситуацию - есть базовый класс с конструктором, принимающим определенные параметры. Ты создаешь базовый класс, конструктор которого не принимает параметров, а конструктор базового класса всегда вызывает с какой-то константой. В случае "наследования" конструктора с параметрами, пользователь сможет вызывать этот конструктор, тем самым нарушив работу класса. Или наоборот, конструктор в произвольно классе должен принимать бОльшее кол-во обязательных параметров, а клиент сможет вызвать "унаследованную версию" с меньшим кол-вом аргументов. Т.е., по-другому-то как сделать было? |
|
Сообщ.
#6265
,
|
|
|
|
Цитата --Ins-- @ Кстати, сменю тему. Тут еще и c# в теме холивара пристуствует... Может мне кто объяснить идею, почему не наследуются конструкторы с параметром и в классах-потомках их необходимо дублировать? Я что-то действительно не могу понять в чем глубокий смысл ![]() Там просто (отностительно) нормальные конструкторы, а не как в Delphi. Но мне не хочется в очередной раз обсуждать тему конструкторов/деструкторов Delphi Вроде все уже было сказано. |
|
Сообщ.
#6266
,
|
|
|
|
Цитата --Ins-- @ Может мне кто объяснить идею, почему не наследуются конструкторы с параметром и в классах-потомках их необходимо дублировать? Я что-то действительно не могу понять в чем глубокий смысл В смысле вот такие? ![]() ![]() class A { public: A(int a = 10) {} } class B { public: B(int a = 10) : A(a) {} } Это не "идея", а баг дизайна C++ кажется. У Мейерса описан ЕМНИП связано это с тем, что вызываемый конструктор определяется с динамическим связыванием, а параметры - статическим. |
|
Сообщ.
#6267
,
|
|
|
|
Цитата Мяут-Настоящий @ ЕМНИП связано это с тем, что вызываемый конструктор определяется с динамическим связыванием, а параметры - статическим. Почему динамическим? Ведь создается конкретный известный тип, с конкретными известными конструкторами, перегрузки тоже статически разрешаются. Или нет? |
|
Сообщ.
#6268
,
|
|
|
|
Мяут-Настоящий, ты что-то напутал и все в кучу смешал.
Мейерс писал говоришь... Ты наверно перепутал с описанной им проблемой о том, что параметры по умолчанию для виртуальных функций определяются статически, а сами функции выбираются динамически, что действительно может привести к проблемам. А конструкторы тут ни при чем. |
|
Сообщ.
#6269
,
|
|
|
|
Цитата Мяут-Настоящий @ Это не "идея", а баг дизайна C++ кажется. Возьмем твой пример. Допустим нужно гарантировать, что объект должен быть инициализирован таким конструктором. Что делать с "унаследованным"? ![]() ![]() class B { public: B(int a = 10, b = 20) : A(a) { _b = b } } |
|
Сообщ.
#6270
,
|
|
|
|
Цитата D_KEY @ Там просто (отностительно) нормальные конструкторы, а не как в Delphi. Но мне не хочется в очередной раз обсуждать тему конструкторов/деструкторов Delphi Я сейчас не о нормальности/ненормальности, может оно и нормально. Мне смысл бы понять, ради чего? Добавлено Цитата Red @ Допустим нужно гарантировать, что объект должен быть инициализирован таким конструктором. Что делать с "унаследованным"? Понятно. Я думаю на самом деле можно было бы что-нибудь придумать разработчикам языка, например слово ключевое слово new тут заюзать или вот именно тут конструктор с одним параметром переопределить как protected или еще что-нибудь. Но сам факт необходимости переобъявлять конструкторы в потомках - напрягает. Тро-ло-ло - а в Delphi такой проблемы нет |