Текущий архив: 2007.02.11;
Скачать: CL | DM;
ВнизВзгляд на С++ с другой стороны. Найти похожие ветки
← →
oxffff © (2007-01-15 17:20) [0]http://steps3d.narod.ru/tutorials/c-minus-minus.html
← →
kaZaNoVa © (2007-01-15 17:31) [1]а в чем сабж? изложите тут плз, накручивать счетчик стороннему сайту не хочется, тем более на народе:)
← →
Axis_of_Evil © (2007-01-15 17:48) [2]о боги - Боресков .. шутник, Ъ.
← →
Игорь Шевченко © (2007-01-15 17:51) [3]Автор неправ. Не стоит накручивать счетчик стороннему сайту
← →
Ega23 © (2007-01-15 17:52) [4]Любую хорошую идею можно довести до маразма.
ИМХО: ничего не имею против самого языка С++. Плохо то, что апологеты преподносят издевательство над типами данных и "хардкорный код" за офигенную фичу и пользуются этим напропалую.
← →
Alkid © (2007-01-15 17:56) [5]
> Любую хорошую идею можно довести до маразма.
> ИМХО: ничего не имею против самого языка С++. Плохо то,
> что апологеты преподносят издевательство над типами данных
> и "хардкорный код" за офигенную фичу и пользуются этим напропалую.
Это не апологеты. Апологеты как раз весьма ратуют за нормальный человеческий код. Другое дело, что С++ позволяет делать некоторые вещи, которые в его контексте весьма естественны, а у программистов на других языках могут вызвать слом мозгов. Например - многочисленные техники работы с шаблогами.
← →
Ega23 © (2007-01-15 18:20) [6]Лёха, ты прекрасно понял, что я хотел сказать. Мы с тобой на эту тему уже неоднократно дискутировали.
Если есть тип данных char, то использовать его как byte - это насилие. Да, в конечном итоге они между собой равны: и там и там значение 0..0хFF. Но вот области операций над ними - совершенно разные.
← →
wicked © (2007-01-15 19:43) [7]начал читать... наткнулся на
> Со временем пришло понимание, что на С++ иначе просто нельзя
> !!! Средства, изначально заложенные в сам язык, настолько
> негибки и жестки, что реализовывать системы, требующие гибкости
> на С++ было крайне тяжело и постояннно приводило к кривым
> способам (т.е. это бага а фича :)).
и перехотел читать....
что же мешает, всё таки, такому прекрасному танцору, как г-н Боресков?
← →
wicked © (2007-01-15 19:46) [8]кстати, к фамилии Боресков у меня самые что ни на есть теплые чувства - две книжки по графике в соавторстве Шикина, Борескова и Зайцева(?) долгое время были у меня настольными... да и сейчас, если бы приперло разбирать что-то этакое, пошел бы первым делом смотреть туда
← →
oxffff © (2007-01-15 23:00) [9]Почитал статью. Согласен с автором.
Все грамотно.
← →
DrPass © (2007-01-15 23:05) [10]
> что же мешает, всё таки, такому прекрасному танцору, как
> г-н Боресков?
Из личного опыта (приходится сопровождать массу плюсового софта, написанную давно ушедшими в забвение программистами):
Жутко мешают макросы, шаблонные классы, нестрогая типизация, множественное наследование и т.д. Это не программы, это свалка синтаксических конструкций. И каждый раз ловлю себя на мысли, что на других языках афтары просто не смогли бы написать весь этот бред.
← →
oxffff © (2007-01-15 23:12) [11]
> > что же мешает, всё таки, такому прекрасному танцору, как
>
> > г-н Боресков?
Есть такой паттерн class factory, так вот его придумали для С++ поскольку нет динамического инстанцирования.
С++ - это макро ООП.
← →
Sergey Masloff (2007-01-15 23:22) [12]DrPass © (15.01.07 23:05) [10]
Ну с множественным наследием согласен. Макросы туда-сюда, просто их столько готовых стандартных свои конечно можно к минимуму свести. А вот шаблоны-то за что? очень удобная вещь и особых трудностей в сопровождении что-то не замечаю.
← →
Celades © (2007-01-15 23:35) [13]
> http://steps3d.narod.ru/tutorials/c-minus-minus.html
баян! уже даже не смешно. У автора явно запущенная стадия синдрома дауна. Уж его не вылечить.
← →
Gero © (2007-01-15 23:58) [14]Зачем полумертвого пинать?
← →
wicked © (2007-01-16 00:05) [15]> DrPass © (15.01.07 23:05) [10]
> Из личного опыта (приходится сопровождать массу плюсового
> софта, написанную давно ушедшими в забвение программистами):
>
> Жутко мешают макросы, шаблонные классы, нестрогая типизация,
> множественное наследование и т.д. Это не программы, это
> свалка синтаксических конструкций. И каждый раз ловлю себя
> на мысли, что на других языках афтары просто не смогли бы
> написать весь этот бред.
то есть язык виноват в том, что понаписывали афтары?...
следуя логике, нам нужно будет судить молоток за то, что ним голову пробили? ;)
> oxffff © (15.01.07 23:12) [11]
> Есть такой паттерн class factory, так вот его придумали
> для С++ поскольку нет динамического инстанцирования.
там еще много чего нет... и ничего, живут люди...
да и дельфи тоже МНОГО ЧЕГО нет, но если я об этом заикнусь, то налетит куча борцунов, которые мне быстро докажут, что и БЕЗ ЭТОГО жить можно...
так что это вопрос скорее философии и личных предпочтений/трудолюбия/лени
> Sergey Masloff (15.01.07 23:22) [12]
> DrPass © (15.01.07 23:05) [10]
> Ну с множественным наследием согласен. Макросы туда-сюда,
> просто их столько готовых стандартных свои конечно можно
> к минимуму свести. А вот шаблоны-то за что? очень удобная
> вещь и особых трудностей в сопровождении что-то не замечаю.
поскольку в цпп нету интерфейсов (в стиле java или delphi или COM), то множественное наследование - просто нужная вещь для именно реализации интерфейсов
хотя, в принципе, никто не мешает их и через простое агрегирование реализовать... но вот шарман уже не тот ;)
оговорюсь, что COM сервера на цпп я писал всего один раз и ничего приятного не испытал :)
а про шаблоны согласен... вопящим про их не нужность можно сказать только одно - "вы не умеете их готовить"
← →
wicked © (2007-01-16 00:07) [16]> Gero © (15.01.07 23:58) [14]
> Зачем полумертвого пинать?
это кого?... Борескова или цпп? :)
← →
Бурундук © (2007-01-16 00:07) [17]2 oxffff © (15.01.07 23:12) [11]
Не богохульствуйте, коллега.
Паттерн class factory может иногда и в Дельфях пригодиться.
2 Gero © (15.01.07 23:58) [14]
"Официальное сообщение о его смерти - четвертое по счету за последние два года - считалось достоверным в течение почти шести месяцев"...
← →
clickmaker © (2007-01-16 10:17) [18]Блин, на народе кто-нибудь вообще основы веб-дизайна знает? Ну как серпом по яйцам желтый текст на черном фоне по глазам...
← →
Zeqfreed © (2007-01-16 10:39) [19]> clickmaker © (16.01.07 10:17) [18]
Хороший дизайн на народе будет смотреться нелепо.
← →
GRAND25 © (2007-01-16 10:43) [20]Очень хорошая и правильная ветка для дельфийского форума! Идеологически выдержанная. Респект!
← →
clickmaker © (2007-01-16 10:48) [21]
> [19] Zeqfreed © (16.01.07 10:39)
> > clickmaker © (16.01.07 10:17) [18]
>
> Хороший дизайн
Хороший дизайн - это уже само по себе хорошо ;)
← →
Ega23 © (2007-01-16 10:53) [22]
> Блин, на народе кто-нибудь вообще основы веб-дизайна знает?
> Ну как серпом по яйцам желтый текст на черном фоне по глазам.
> ..
Я скопировал текст, вставил в Word, распечатал (12 страниц вроде), скрепил тремя скрепками, унёс домой и вдумчиво читал в сортире и ванной.
После прочтения возник вопрос: а действительно, можно-ли в дельфях создать объект, заранее не зная его класс?
Сейчас думаю над этим.
← →
Kerk © (2007-01-16 11:01) [23][22] Ega23 © (16.01.07 10:53)
> После прочтения возник вопрос: а действительно, можно-ли
> в дельфях создать объект, заранее не зная его класс?
Можно. У меня лаба в универе была, я там dfm-ку руками парсил и создавал все.
← →
Бурундук © (2007-01-16 11:08) [24]Ega23 © (16.01.07 10:53) [22]
Можно, если известен базовый класс с виртуальным конструктором.
← →
Kerk © (2007-01-16 11:09) [25]> [24] Бурундук © (16.01.07 11:08)
Базовый класс всегда известен :)
← →
Ega23 © (2007-01-16 11:10) [26]
> Можно, если известен базовый класс с виртуальным конструктором.
А что дальше? Ну известен базовый. Ну у конструктора virtual стоит. Переменную-то как объявить?
← →
Kerk © (2007-01-16 11:11) [27]> [26] Ega23 © (16.01.07 11:10)
class of ...
← →
vlad-mal © (2007-01-16 11:14) [28]А я бы не отказался от reflection...
← →
Ega23 © (2007-01-16 11:17) [29]
> class of ...
А, точно. Как коллекцию объявить, а в конструкторе уже анализировать. Ясно.
← →
Бурундук © (2007-01-16 11:18) [30]Ega23 © (16.01.07 11:10) [26]
так переменную этого базового класса и объяви. Далее - полиморфизм.
Можно еще объявить как TObject, только толку от этого будет мало.
Переменную неизвестного класса ты, конечно, никак объявить не сможешь :-)
← →
Kerk © (2007-01-16 11:18) [31]> [29] Ega23 © (16.01.07 11:17)
Какую коллекцию? Олегтычо?
← →
Ega23 © (2007-01-16 11:18) [32]Только, ИМХО, в данном случае виртуальность базового конструктора вовсе не обязательна.
← →
Ega23 © (2007-01-16 11:19) [33]
> Какую коллекцию? Олегтычо?
>
Нормально, это сленг у меня такой. Пример - в TCollection
← →
Бурундук © (2007-01-16 11:25) [34]2 Ega23 © (16.01.07 11:18) [32]
>Только, ИМХО, в данном случае виртуальность
>базового конструктора вовсе не обязательна.
А как без неё-то?
Как ты вызовешь конструктор неизвестного класса?
← →
vuk © (2007-01-16 11:26) [35]to Ega23 © (16.01.07 11:18) [32]:
>Только, ИМХО, в данном случае виртуальность базового конструктора
>вовсе не обязательна.
Это только тогда прокатит, если конструктор в потомках не переопределять. Никогда и ни за что.
← →
vuk © (2007-01-16 11:28) [36]to Бурундук © (16.01.07 11:25) [34]:
>Как ты вызовешь конструктор неизвестного класса?
Вызвать-то он вызовет. Вопрос в том, что он вызовет.
← →
GRAND25 © (2007-01-16 11:29) [37]Вообще, считается признаком хорошего тона делать деструктор ВСЕГДА виртуальным. Почему же конструктор низя? Я думаю, что можно и даже нужно!
← →
vlad-mal © (2007-01-16 11:29) [38]Автор прото желтый червяк:
Еще одной интересной особенностью языка являются ссылки (references). Давайте сравним два описания функции:void func1 ( A& a );
void func2 ( A a );
В чем разница между этими описаниями (кроме того, что возможно программист просто пропустил символ "&") ?
А в том, что во втором случае внутрь функции передается не то, что попросил передать программист, а лишь его копия. Т.е сначала вызывается copy-constructor, а по возвращении еще и деструктор.
Т.е. всего один символ в описании параметра может привести к очень большим затратам на создание и уничтожение вот этих временных объектов. А если это достаточно "тяжеловесный" объект или данная операция проводится в цикле, то затраты могут оказаться очень большими.
Не говоря при этом о том, что если программист надеется через переданный в функцию объект получить какой-то результат (т.е. изменение в объекте), то он надеется совершенно напрасно - будет изменена лишь копия объекта, которая сразу же после этого будет разрушена. Здорово, а ?
Такое ощущение, что он сам сдуру неправильно описал метод, в который передается не то, что нужно, потом его за это взрючили и лишили квартальной премии. И так семь раз подряд. Затем родилась статья.
← →
Ega23 © (2007-01-16 11:30) [39]Так, меня не слушать, у меня чё-то пальцы путаются. я уже virtual c reintroduce начал путать.
← →
vuk © (2007-01-16 11:34) [40]to GRAND25 © (16.01.07 11:29) [37]:
>Я думаю, что можно и даже нужно!
И потом в потомках бороться с фиксированным набором параметров. И зачем?
Страницы: 1 2 3 4 вся ветка
Текущий архив: 2007.02.11;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.07 c