Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
6-1190274989
umbra
2007-09-20 11:56
2008.07.13
InternetGoOnline из WinInet


2-1213343912
leonidus
2008-06-13 11:58
2008.07.13
Чтение данных из файла UTF-8


4-1192946133
SKIPtr
2007-10-21 09:55
2008.07.13
Какую функцию лучше использовать


11-1172423656
Vladimir Kladov
2007-02-25 20:14
2008.07.13
Версия 2.54


2-1211262319
grav
2008-05-20 09:45
2008.07.13
IBDataSet, Master-Detail и Insert





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский