|
Использовать 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 23 2013, 07:19
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(winipuh @ Sep 15 2013, 18:28)  С другой стороны: - Много слышал о глубокой любви Линуса Торвальдса к С++. Дядечка этот умный и считаться с его мнением стоит
- Некоторые полагают, что крайне опасно открывать двери к проекту для сферического С++ программиста. Честно говоря, такие посты как это или это самого наталкивают на такие мысли (ну или я чего-то не понимаю).
Что касается Линуса, я думаю, он вполне обоснованно опасается толпы неграмотных кодеров, не способных правильно писать на C++, а также плохой совместимости между реализациями C++, что грозит адскими проблемами при портировании ядра. Но это всё не наш случай. Автор второго поста(из Интела) вроде бы вообще ничего, кроме GUI, не писал, но при этом требует использовать GUI паттерны для всех программ без исключения. И это тоже не наш случай. Я использовал в микроконтроллерах именно "С с классами", и остался вполне доволен - это удобнее простого С. А ещё в C++ стандартизованы инлайн функции, и шаблоны тоже можно использовать(без фанатизма). Причём на шаблонах можно сделать эмбеддерский аналог STL для контейнеров, без аллокаторов, с хранением узла прямо в структуре объекта, который кладётся в контейнер. Это в некоторой степени даже удобнее традиционного STL.
|
|
|
|
Сообщений в этой теме
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 winipuh Бзусловно, Вы правы, Xenia. Собственно я о том же ... Sep 15 2013, 15:57 kolobok0 Цитата(winipuh @ Sep 15 2013, 19:57) ...с... Sep 15 2013, 19:20  winipuh Боюсь, что Вы меня не совсем правильно поняли
Ци... Sep 15 2013, 20:14   Tiro Цитата(winipuh @ Sep 15 2013, 23:14) Я зн... Sep 15 2013, 20:40   kolobok0 Цитата(winipuh @ Sep 16 2013, 00:14) ...П... Sep 16 2013, 11:58    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 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|