|
Использовать C++ как "улучшенный С" с классами, но в духе С... |
|
|
|
Sep 15 2013, 14:28
|

Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 31-10-12
Пользователь №: 74 189

|
Иными словами, в стиле структурного программирования, но с применением некоторых полезных, на мой взгляд, возможностей С++ ("синтаксического сахара"): - namespace — Имена констант/типов/функций обычно снабжаются приставками для предотвращения конфликта имен и/или обозначения принадлежности к кругу решаемых задач. Namespace делает это необязательным. Есть возможность чаще использовать короткие имена, и лишь в отдельных местах - полное имя (с квалификатором "::"). Определенные через #define целые константы можно заменить на enum, вещественные/строковые - на static const переменные, макросы - на static inline функции.
- Перегрузка функций — Не требуется несколько функций с именами типа func(...) и func_ext(..., дополнительные параметры) и т.п. Сокращение количества имен функций, лучшая читаемость кода.
- Параметры функций по умолчанию — Улучшение читаемости кода. Например, "стандартный" вызов функции проще и писать, и отличать от вызова с особыми условиями. Что-то типа show_mode(mode) и show_mode(mode, "Error") вместо show_mode(mode, NULL) и show_mode(mode, "Error")...
- Классы — Без фанатизма. Часто есть некая структура (struct) и несколько функций для ее обработки, которым через параметр передается указатель на структуру. Класс делает тоже самое (неявно), но позволяет лучше логически связать стуктуру и функции. Плюс опять таки пространство имен.
Вот такие есть мысли о применении C++ в своих проектах в ближайшем будущем. С другой стороны: - Много слышал о глубокой любви Линуса Торвальдса к С++. Дядечка этот умный и считаться с его мнением стоит
- Некоторые полагают, что крайне опасно открывать двери к проекту для сферического С++ программиста. Честно говоря, такие посты как это или это самого наталкивают на такие мысли (ну или я чего-то не понимаю).
С учетом этого кажется, что от проекта на "С++ в духе С" лучше всем не станет, будет только яростная критика и со стороны "чистых С-программистов", и программистов на "чистом С++"... Хотелось бы услышать мнение других. Приглашаю к дискуссии.
|
|
|
|
|
 |
Ответов
|
Sep 15 2013, 15:57
|

Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 31-10-12
Пользователь №: 74 189

|
Бзусловно, Вы правы, Xenia. Собственно я о том же и говорил. Вопрос в другом. Если есть проект, написанный фактически на Си, но с "улучшениями" С++ (описанными выше), призванными улучшить ясность, читаемость кода. Нет ли опасности, что на самом деле другие разработчики, которым придется далее подерживать проект, не оценят этих стараний. Вдруг все будет наоборот — сторонник чистого Си будет плеваться и называть автора извращенцем, а приверженец С++ презрительно кривиться над "недопрограммой", потому что в ней не применяется ООП, не используется STL (или используется только малая часть) и т.п.?
|
|
|
|
|
Sep 15 2013, 20:14
|

Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 31-10-12
Пользователь №: 74 189

|
Боюсь, что Вы меня не совсем правильно поняли  Цитата(kolobok0 @ Sep 15 2013, 23:20)  как то Вы странно противопоставляете си - си плас пласу. Не противопоставляю. Просто есть известное мнение одного известного человека о С++. Отсюда возникает мысль, что среди чистых С-программистов найдется немало людей, разделяющих его. Да и 10 страниц текста в википедии о "критике C++" только подкрепляют опасения... Цитата(kolobok0 @ Sep 15 2013, 23:20)  и ышо один момент. ООП - это к языку не имеет ни какого отношения. Нигде не утверждал обратного. Я знаю, что ООП, равно как и структурное или обобщенное программирование — это парадигмы, которые язык позволяет использовать, но не принуждает к этому. Цитата(kolobok0 @ Sep 15 2013, 23:20)  так, что в Вашем вопросе больше просматривается не совсем глубокое понимание вопроса касаемого ОО вещей. Вовсе не пытался изображать глубокое понимание ООП. Просто возникла мысль, что программисты на С++ стараются использовать ООП (и скорее всего не безосновательно), и поэтому будут косо смотреть на проект, выполненный на С++ но в рамках структурного программирования. Итого, мне просто хотелось услышать мнения о проекте на С++, выполненном только в "структурном стиле" с использованием некоторых синтаксических возможностей плюсов (namespace, перегрузка функций, классы, возможно местами template-ы): - От программистов на С — как бы они отнеслись к подобному проекту?
- От программистов на С++ — как бы они отнеслись к подобному проекту?
Вот и все.  з.ы. Неоднократно читал вот эту тему, не хотелось бы, чтобы дискуссия скатилась в таком же направлении (ООП vs С и проч. бессмыслица).
|
|
|
|
|
Sep 16 2013, 11:58
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(winipuh @ Sep 16 2013, 00:14)  ...Просто возникла мысль, что программисты на С++ стараются использовать ООП... складывается такое очучение, что Вы не так трактуете ООП. Данная абривиатура расшифровывается как Объектно Ориентированное Проектирование и _никак_ иначе!!! Сначала идёт ООА (Анализ) и ООП (проектирование) А уж потом выбор языка(инструмента) и ваяние(программирование). Ну и опираясь на этот всем известный фундамент - объясните дураку как ООП зависит от языка??? Цитата(Misile_Inc @ Sep 16 2013, 00:23)  Ну это вы немножко перегнули. Надо выбирать язык, поддерживающий выбранный ранее стиль программирования. Писать- то на си можно,... После грамотного ООА и ООП Вы можете писать хоть на азме. Фиолетово. Да не будет кучи плюшек при "изложении лаконичности мысли", но заметьте - при этом Объектно Ориентированное Проектирование _не_ пострадает!!! Лично сам, создавая программки на азме, следую ОО подходам в построении программ. Программы выглядят не монолитным куском, а структурированные по объектам из бизнес логики. И если некая сущность не может "тявкать" по изначальным бизнес рамкам - то она этого никогда и не будет делать. Т.е. язык вторичен, в случае правильного подхода к процессу создания программного продукта. ну собственно ничего нового я не сказал, усё доходчиво описано у старика Буча... Цитата(winipuh @ Sep 16 2013, 00:14)  ...хотелось услышать мнения о проекте на С++, выполненном только в "структурном стиле" с использованием... отвечая на ваш вопрос, о "структурном стиле". дело в том, что объектный подход - есть собственно единственно правильным. или скажем по другому. при решении задач посредство ОО метода мы имеем _более_статичную_модель_ = как следствие имеем меньше переделок = как следствие имеем меньше кода = как следствие имеем меньше человеко часов... И заметьте - это только один(или сколько там образовалось?) плюс(ов)!!! а их ышо куча и маленькая тележечка!!!  про упрощение сапота, пониженного уровня вхождению в тему, гибкость, и т.д. и т.п. можно долго говорить... и это только эта метОда даёт. я бы с удовольствием познакомился с другой методологией - но пока нетю...
Сообщение отредактировал kolobok0 - Sep 16 2013, 12:00
|
|
|
|
Сообщений в этой теме
winipuh Использовать C++ как "улучшенный С" с классами Sep 15 2013, 14:28 Xenia C++ никогда не порывал с духом C. Т.е. можно пис... Sep 15 2013, 15:14 _Pasha "Вольностей" хватает в gcc --std=gnu99
Е... Sep 15 2013, 15:42 Tiro Цитата(winipuh @ Sep 15 2013, 17:28) Хоте... Sep 15 2013, 15:48   Tiro Цитата(winipuh @ Sep 15 2013, 23:14) Я зн... Sep 15 2013, 20:40    DASM Цитата(kolobok0 @ Sep 16 2013, 15:58) отв... Sep 16 2013, 12:16     kolobok0 Цитата(DASM @ Sep 16 2013, 16:16) ...моло... Sep 16 2013, 12:46  Misile_Inc Цитата(kolobok0 @ Sep 15 2013, 22:20) ООП... Sep 15 2013, 20:23 Misile_Inc STL нужно использовать когда знаете, как ее правил... Sep 15 2013, 17:10 Idle Цитата(winipuh @ Sep 15 2013, 18:28) Дяде... Sep 16 2013, 10:46 A. Fig Lee Цитата(winipuh @ Sep 15 2013, 10:28) Иным... Sep 16 2013, 12:39 DASM А я дальше и читать не стал, после слов "есть... Sep 16 2013, 12:54 Timmy Цитата(winipuh @ Sep 15 2013, 18:28) С др... Sep 23 2013, 07:19 AlexandrY Цитата(Timmy @ Sep 23 2013, 10:19) не спо... Sep 23 2013, 08:10  Timmy Цитата(AlexandrY @ Sep 23 2013, 12:10) От... Sep 25 2013, 06:46   AlexandrY Цитата(Timmy @ Sep 25 2013, 09:46) И без ... Sep 25 2013, 07:08   MrYuran Цитата(Timmy @ Sep 25 2013, 09:46) Интере... Sep 25 2013, 07:20 A. Fig Lee Цитата(Timmy @ Sep 23 2013, 03:19) ... а ... Sep 23 2013, 11:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|