Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
ВнизКак писать на С++, а не на Дельфи? Найти похожие ветки
← →
@!!ex © (2008-05-16 22:06) [0]Поговорка: "Программист на фортране модет писать на фортране на любом языке" - на самом деле весьма актуальна.
Банально сейчас веду проект на С++, и ловлю себя на том, что пытаюсь построить архитектуру так, как строил бы на Дельфе.
Но это же в корне не правильно!
Как переучится? вернее не переучится, а научится эффективно писать на С++.
← →
boa_kaa © (2008-05-16 22:13) [1]
> @!!ex © (16.05.08 22:06)
> пытаюсь построить архитектуру так, как строил бы на Дельфе
и правильно делаешь
← →
DrPass © (2008-05-16 22:14) [2]
> Банально сейчас веду проект на С++, и ловлю себя на том,
> что пытаюсь построить архитектуру так, как строил бы на
> Дельфе.
> Но это же в корне не правильно!
Что за брутальные мысли? Если ты практику "аккуратного" Delphi-кода перенесешь на С++, тебе будет только плюс. Или даже два :)
← →
@!!ex © (2008-05-16 22:19) [3]Такой подход приводит к тому, что на С++ переносятся недостатки Дельфи, и не используются преимущества С++.
В итоге получаем код, который содержит недостатки С++, содержит недостатки Дельфи, и содержит только те достоинства, которые есть и в Дельфи и в С++.
← →
boa_kaa © (2008-05-16 22:29) [4]
> @!!ex © (16.05.08 22:19) [3]
>
> Такой подход приводит к тому, что на С++ переносятся недостатки
> Дельфи, и не используются преимущества С++.
>
> В итоге получаем код, который содержит недостатки С++, содержит
> недостатки Дельфи, и содержит только те достоинства, которые
> есть и в Дельфи и в С++.
это только в том случае, если ты решил переносить все недостатки
← →
Игорь Шевченко © (2008-05-16 22:51) [5]
> Как переучится? вернее не переучится, а научится эффективно
> писать на С++.
Читать хорошие исходники и медитировать над ними.
Кстати, на самом деле, программист на Фортране будет писать на Фортране на любом языке - я много раз видел написанный "на Фортране" код на Delphi и на C (и на C++)
На С# после Delphi писать несколько проще, чем на С++
← →
DrPass © (2008-05-16 22:51) [6]
> @!!ex © (16.05.08 22:19) [3]
> Такой подход приводит к тому, что на С++ переносятся недостатки
> Дельфи, и не используются преимущества С++.
А можно обойтись без литературных метафор, и сказать конкретно, что именно тебя не устраивает? Какие именно недостатки ты переносишь, и какие преимущества теряешь?
← →
palva © (2008-05-16 23:20) [7]Советую почитать последнее издание Страуструпа. Учиться по этой книге невозможно, но некую философию программирования на си++ из нее можно извлечь. Я, к стати, так ее и не одолел. Есть еще философский двухтомник Брюса Эккеля. Вернее, слово "философия" присутствует в названии второго тома. Я ее тоже читал местами.
← →
wicked © (2008-05-17 01:01) [8]для начала - ознакомиться с тем, что уже есть
STL - контейнеры данных, алгоритмы, как оно всё работает в связке
потом - с вещами, которые тебе будут облегчать жизнь - например, смарт поинтеры, паттерны (можно и не все, всё равно опыт приходит с практикой)
ознакомиться с тем, что такое парадигма RAII, нужна ли она тебе и как её использовать
и практика - писать и еще раз писать
← →
Германн © (2008-05-17 01:09) [9]
> Как переучится? вернее не переучится, а научится эффективно
> писать на С++.
>
Это придёт со временем. Точнее с опытом многолетней работы. И это относится к любому языку, а не только к С++. Бо ни у какого языка нет простой "Инструкции по применению"! :)
← →
ketmar © (2008-05-17 07:49) [10]перенёс в си свои паскалевские привычки по наименованию идентификаторов. когда это видят заядлые сишники, у них начинаются припадки с пеной изо рта.
---
Understanding is not required. Only obedience.
← →
Юрий Зотов © (2008-05-17 11:20) [11]> ketmar © (17.05.08 07:49) [10]
Дык... функции WinAPI, надо полагать, писали экстрасуперсишники, а имена им дали вполне даже паскалевские.
← →
LightRipple © (2008-05-17 11:36) [12]> Offtop
Может подскажите с какой книжки лучше начинать изучать С++ ?
Или надо обратить свои взоры на С# ?
Лазила по форумам сишников, в поисках совета по стартовой литературе,
но вот беда: одни хвалят некую книгу, другие ее тут же разносят "в пух и прах" да еще и ногами топчут :)
Так как я там никого не знаю, то не могу и решить к чьему мнению надо прислушаться :(
Поэтому и решила спросить у нашего "сообщества" :)
← →
Zeqfreed © (2008-05-17 11:53) [13]Сколько книжек я не пробовал читать по С++, единственно полезной для меня, видимо, оказался «Полный справочник» Шилдта. На втором месте, однако, стоит упомянуть «Философию» Эккеля (см. [7]), которая тоже довольно интересна и познавательна.
← →
Игорь Шевченко © (2008-05-17 12:03) [14]
> Может подскажите с какой книжки лучше начинать изучать С++
> ?
C++ лучше изучать со Страуструпа.
С просто (и это более достойно) лучше изучать с Кернигана и Ричи "Язык программирования С" - она не толстая. Параллельно с ней желаетльно читать книжку Кернигана и Пайка "Практика программирования".
Почему более достойно - потому что и Unix и Windows написаны на С, а не на С++ :)
← →
Anatoly Podgoretsky © (2008-05-17 12:09) [15]> LightRipple (17.05.2008 11:36:12) [12]
На C++ Microsoft наложила болт, так что не трать на него время.
Все новые примеры в MSDN идут на C# и VB.Net
← →
oxffff © (2008-05-17 12:14) [16]
> Anatoly Podgoretsky © (17.05.08 12:09) [15]
Это не совсем так. :)
Сейчас у них в планах этот болт переложить.
← →
ketmar © (2008-05-17 12:21) [17]>[11] Юрий Зотов © (2008-05-17 11:20:00)
а это наследие тяжёлых времён первой винды, которая на паскале была.
---
Understanding is not required. Only obedience.
← →
palva © (2008-05-17 12:59) [18]Керниган и Риччи излагают старую версию языка си. Например функция там может быть определена так.
int fun(s, n)
char *s;
int n;
{
return (*(s + n));
}
Теперь любой сишник опишет параметры в первой же строчке, а выражение после return не будет заключать в скобки. Хотя старый стиль и воспринимается современными компиляторами, я бы не советовал к нему привыкать.
Сама книга очень хороший учебник. Достаточно сказать, что я изучил первое издание этой книги (перевод у нас вышел где-то на стыке 70-х и 80-х) когда у меня даже не было компилятора - всё было четко изложено в самой книге и прилагавшихся примерах и упражнениях.
← →
palva © (2008-05-17 13:15) [19]
> на стыке 70-х и 80-х
на стыке 80-х и 90-х
← →
palva © (2008-05-17 14:35) [20]Все-таки засомневался и стал уточнять. Перевод первого издания книги вышел в 1985 году. Вот его читать не надо. Сейчас в ходу 3-е издание. Там на обложке такое красное изображение штампика "ANSI C" - вот там изложен нормальный современный си.
← →
LightRipple © (2008-05-17 23:57) [21]Ух ты сколько у нас сишников :) Спасибо.
> [14] Игорь Шевченко © (17.05.08 12:03)
> С просто (и это более достойно) лучше изучать с Кернигана и Ричи
> "Язык программирования С" - она не толстая.
Ну раз "она не толстая", то придется прочитать.
Это конечно не самый, но довольно весомый агрумент :)
К сожалению, не помню кто именно (с нашего форума), рекомендуя мне книгу
по программированию приводил более весомый аргумент: "она с картинками" :)
← →
Игорь Шевченко © (2008-05-18 00:00) [22]LightRipple © (17.05.08 23:57) [21]
> Ну раз "она не толстая", то придется прочитать.
Страуструп, например, толстый. Впрочем и С++ толстый сам по себе
← →
Pilum © (2008-05-18 14:36) [23]Prolog изучи. Для расширения кругозора... :>
← →
Дмитрий С (2008-05-18 14:42) [24]Покажите пример кода на Дельфи на фортране =)
← →
_mirage (2008-05-18 17:26) [25]>[22] Игорь Шевченко © (2008-05-18 00:00:00)
>Страуструп, например, толстый.
и глупый.
---
Understanding is not required. Only obedience.
← →
Anatoly Podgoretsky © (2008-05-18 17:40) [26]
> Страуструп, например, толстый.
Хорошего человека должно быть много.
← →
_mirage (2008-05-18 17:45) [27]>[26] Anatoly Podgoretsky © (2008-05-18 17:40:00)
так то хорошего. а то труп страуса.
---
Understanding is not required. Only obedience.
← →
Игорь Шевченко © (2008-05-18 21:11) [28]_mirage (18.05.08 17:26) [25]
Я конечно все понимаю, слонов нынче много, раздолье...
← →
_mirage (2008-05-18 21:55) [29]>[28] Игорь Шевченко © (2008-05-18 21:11:00)
Игорь, ты ж в курсе, что я цпп не котирую. страус испортил отличный макроассемблер, за что я лично буду его в аду жарить. что хуже, он зачем-то назвал своё поделие «объектно-ориентированым», хотя это полная чушь. «объектно-ориентированый» — это Objective C, например. а никак не цпп.
---
Understanding is not required. Only obedience.
← →
_mirage (2008-05-18 21:56) [30]>[29] _mirage (2008-05-18 21:55:00)
жарить страуса, конечно, не макроассемблер. %-)
---
Understanding is not required. Only obedience.
← →
Игорь Шевченко © (2008-05-18 22:24) [31]_mirage (18.05.08 21:55) [29]
> Игорь, ты ж в курсе, что я цпп не котирую
Я не в курсе твоих пристрастий. Но тем не менее.
"Что ты такого написал, что устал?" (с)
← →
KSergey © (2008-05-19 09:09) [32]> Pilum © (18.05.08 14:36) [23]
> Prolog изучи. Для расширения кругозора... :>
Для перехода в измененное сознание часто достаточно boost посмотреть. Да и к теме С++ это ближе и, быть может, даже полезнее.
← →
Mystic © (2008-05-19 11:05) [33]> Такой подход приводит к тому, что на С++ переносятся недостатки
> Дельфи, и не используются преимущества С++.
Ну так посмотри на исходники boost и попытайся мутить в том же ключе. А вообще главный недостаток C++ это наличие большого количества преимуществ, что провоцирует использовать их все :)
> перенёс в си свои паскалевские привычки по наименованию
> идентификаторов. когда это видят заядлые сишники, у них
> начинаются припадки с пеной изо рта.
Я не знаю какого-то единого стандарта кодирования для C++. Кто как хочет, так и именует.
← →
_mirage (2008-05-20 06:09) [34]>[31] Игорь Шевченко © (2008-05-18 22:24:00)
>"Что ты такого написал, что устал?" ©
«войну и мир» три раза от руки переписывал. тяжело.
алсо, в курсе, в курсе. или принципиально не отождествляешь «ketmar» и «mirage»? %-)
---
Understanding is not required. Only obedience.
← →
Юрий Зотов © (2008-05-20 09:00) [35]> Дмитрий С (18.05.08 14:42) [24]
> Покажите пример кода на Дельфи на фортране =)
CONST FMT="A=%F6.2";
CASE SIGN(I) OF -1:GOTO LBL10; 0:GOTO LBL20; 1:GOTO LBL30; END;
LBL10:A := 100;
GOTO LBL40;
LBL20:A := 11;
GOTO LBL40;
LBL30:A := 153;
LBL40:WRITELN(FORMAT(FMT, [A]));
Это стиль Фортрана-2 или Фортрана-4 (он же Фортран-66). Справедливости ради надо сказать, что уже в следующем стандарте (Фортран-77) стиль был заметно улучшен, в Фортран-90 он стал еще лучше, а уж в современном Фортране (не знаю, какой сейчас последний), надо полагать - так и вовсе.
← →
_mirage (2008-05-20 09:19) [36]>[35] Юрий Зотов © (2008-05-20 09:00:00)
убил. с первого выстрела.
---
Understanding is not required. Only obedience.
← →
Юрий Зотов © (2008-05-20 09:27) [37]Тот же код на Фортране (возможны ошибки, я его уже почти забыл).
1 FORMAT(%F6.2)
IF SIGN(I) 10, 20, 30
10 A = 100
GOTO 40
20 A = 11
GOTO 40
30 A = 153
40 PRINT 1 (A);
← →
Romkin © (2008-05-20 10:52) [38]Я когда-то перевел исходник одного алгоритма с Фортрана на Паскаль. Причем буквально, там фиг разберешься: процедура была страниц на 6, монолитом. Вот это был фортран на паскале в чистом виде, я замучился метки описывать, сорок штук примерно :)
← →
Юрий Зотов © (2008-05-20 10:58) [39]Тот же код, на чем-то вроде C/Java/etc:
printf("%f6.2", a = sign(i) < 0 ? 100 : (sign(i) == 0 ? 11 : 153));
Честно говоря, вряд ли он более читабелен, чем фортрановский...
:о)
← →
Слоник © (2008-05-20 11:06) [40]> Юрий Зотов © (20.05.08 10:58) [39]
>
> Тот же код, на чем-то вроде C/Java/etc:
>
> printf("%f6.2", a = sign(i) < 0 ? 100 : (sign(i) == 0 ?
> 11 : 153));
>
> Честно говоря, вряд ли он более читабелен, чем фортрановский.
> ..
> :о)
дело привычки, мой встроенный парсер не спотыкнулся, сразу всё ясно стало
а фортрановский пришлось "дебажить", чтобы понять суть (после первого прочтения не стал вникать, только после сишного заинтересовало - как то же на фортране будет смотреться)
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.009 c