Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 0 / 0
Регистрация: 02.11.2025
Сообщений: 1

Подводные камни

02.11.2025, 15:02. Показов 8121. Ответов 87

Студворк — интернет-сервис помощи студентам
Какие основные ошибки совершают начинающие при изучении C++ и как их избежать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2025, 15:02
Ответы с готовыми решениями:

Подводные камни клиент-серверного приложения
Здравствуйте дорогие Хорошую статью дал мне Vitaly1981 http://citforum.ru/book/cook/winsock.shtml ...

Подводные камни в стеке, в очереди, в списке
какие могут быть ошибки в структурах данных? например, вот в очереди начало может догнать конец....

Какие подводные камни могут быть, при хранении в контейнере элемента типа void*?
Привет читателям! Какие подводные камни могут быть, при хранении в контейнере элемента типа void*?...

87
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
06.11.2025, 15:44
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Yana_T Посмотреть сообщение
Подводные камни
Самые частые ошибки новичков собранные на этом форуме: Распространенные ошибки

Effective Modern C++ - Скотт Мейерс
Часть подводных камней технического характера.

Дальше ошибки будут идти на этапе разработки.
Для этого читаем Паттерны проектирования.

Добавлено через 5 минут
Цитата Сообщение от Алексей1153 Посмотреть сообщение
и какая связь между студентами-неосиляторами и "нормальностью" языка ?
Связь, может быть, в том, что порог вхождения в С++ выше.
И для решения задачи "написать интерпретатор" нужно больше знаний и усилий, чем на других ЯП, для которых эта задача более естественна и проще в реализации.
Но прямой связи, конечно нет. Заливает. Иваннка может и будет.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,404
06.11.2025, 15:53
Цитата Сообщение от Алексей1153 Посмотреть сообщение
и какая связь между студентами-неосиляторами и "нормальностью" языка ?
Голодный студент ВШЭ залез в репозиторий;
В нём плюсы сочные, как яхонты, горят.
У парня глаза и мозги разгорелись;
А шаблоны висят, как кисти, высоко:
Отколь и как он к ним ни подберётся,
Хоть видит око,
Да компилятор неймёт.
Пробившись попусту семестр целый,
Пошёл и говорит с досадою: «Ну, что́ ж!
На взгляд-то он хорош,
Да сырой — фичи нет сверхвысокоуровневой:
Тотчас segmentation fault набьёшь».
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
06.11.2025, 16:16
Цитата Сообщение от _Ivana Посмотреть сообщение
Так что Croessmah полностью прав
Раз уж началось с меня, то напишу своё видение.

Я представляю начинающего как человека, который раньше никогда не сталкивался с программированием. Он не знает что такое условия, циклы, не знает алгоритмов, какие бывают структуры данных и т.д.
И вот он приходит в мир программирования, а ему помимо всего вышеперечисленного еще навешивают C++ со всей его сложностью. Чувствуете как повеяло страданием и унынием?
Я бы сначала все эти азы рекомендовал освоить с использованием другого языка: C, Pascal, Basic, Python, и т.п.
Можно вообще с ассемблера начать - там вообще всё просто, нихрена нет, кроме железяки и ОС. Но это может быть муторно и не интересно.
Начинать с Си может быть тоже непросто, но всяко проще, чем с C++. Ну а как разберемся со структурами данных, алгоритмами и хорошенько с указателями, можно (и нужно) в C++ заглянуть.
3
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,404
06.11.2025, 16:24
Цитата Сообщение от XLAT Посмотреть сообщение
потому что, вангую, у автора на лиспе и хаскеле уже есть готовых 100500 варов интерпретатора, а крестах нет ни одного.
так оно скорее и есть, но другая причина в том, что одно дело знать, а другое - уметь передать знания другим. Программист и педагог это разные вещи.

Вот, один из его онлайн-уроков. Студентов осталось двое... И тут не С++. Зачем тогда винить язык, что "никто не реализует интерпретатор и не проходит курс".

0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
06.11.2025, 17:03
Цитата Сообщение от Royal_X Посмотреть сообщение
Голодный студент ВШЭ залез в репозиторий;
В нём плюсы сочные, как яхонты, горят.
У парня глаза и мозги разгорелись;
А шаблоны висят, как кисти, высоко:
Отколь и как он к ним ни подберётся,
Хоть видит око,
Да компилятор неймёт.
Пробившись попусту семестр целый,
Пошёл и говорит с досадою: «Ну, что́ ж!
На взгляд-то он хорош,
Да сырой — фичи нет сверхвысокоуровневой:
Тотчас segmentation fault набьёшь».
Голодный студент ВШЭ
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
06.11.2025, 17:20
Цитата Сообщение от alexu_007 Посмотреть сообщение
А оставшиеся на указанных вами "народных" языках 10% все пишут интерпретатор?
Нет, тоже не все. Но там не такая драматичная статистика, как на плюсах

Цитата Сообщение от alexu_007 Посмотреть сообщение
В чем принципиальная разница между С++ и другими языками, что существенно облегчает задачу написания интерпретатора?
Как минимум, несколько очевидных моментов:

- отсутствие ГЦ

- неудобно реализованная квази-статическая типизиция без АТД

- необоснованная самоуверенность большинства программистов на С++ в том, что они знают С++ хоть на каком-то уровне


Цитата Сообщение от Алексей1153 Посмотреть сообщение
и какая связь между студентами-неосиляторами и "нормальностью" языка ?
Очевидно, что оказаться неосилятором на С++ гораздо проще, чем, скажем, на Питоне (хотя и это тоже возможно, как показывает практика) Ну и, думаю, даже вы при всей вашей предвзятости, согласитесь, что для прототипирования и быстрых проверок концепций С++ не очень подходит.


Цитата Сообщение от XLAT Посмотреть сообщение
_Ivana,
дайте, пжлста, ссыль на ваш интерпретатор - конкретно ТЗ,
желательно с позиции конечного пользователя - "что он умеет".
На примере Джава-реализации https://github.com/Ivana-/Lisc... t-overview

ЗЫ: самый забавный момент во всем этом треде, что большинство студентов изучают почему-то С++. При том, что в школе максимум учили Питон и ЕГЭ сдавали на нем же. А там им сразу платформенно-зависимые типы, статические/динамические/автоматические, рвалью/лвалью, указатели/сто видов ссылок/, нью/делит и остальные радости. И именно с этим связана относительно высокая активность и обилие новых тем от студентов-халявщиков в этом разделе форума
1
фрилансер
 Аватар для Алексей1153
6494 / 5722 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
06.11.2025, 17:54
Цитата Сообщение от _Ivana Посмотреть сообщение
для прототипирования и быстрых проверок концепций С++ не очень подходит.
почему ?

Вполне можно быстро накидать тяп-ляп, будет неэффективно, но как демо версия пойдёт. В STL много обобщённых инструментов

Добавлено через 46 секунд
И можно, кстати, писать код, не используя new и delete. Даже приветствуется
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
06.11.2025, 17:59
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Вполне можно
Да конечно можно, и на Си/ассемблере тоже можно, вопрос же в сравнительной трудоемкости. Ну и блаб-парадокс никто не отменял, если вы имеете опыт писания на С++, он конечно поможет
0
фрилансер
 Аватар для Алексей1153
6494 / 5722 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
06.11.2025, 18:02
Цитата Сообщение от _Ivana Посмотреть сообщение
и на Си/ассемблере тоже можно
на C++ несравнимо проще
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
06.11.2025, 18:07
Цитата Сообщение от Алексей1153 Посмотреть сообщение
на C++ несравнимо проще
Дискуссионный вопрос. В силу несравнимой сложности самого С++ перед Си и ассемблером.

Но вернемся к началу - я всего лишь поделился своей статистикой
0
фрилансер
 Аватар для Алексей1153
6494 / 5722 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
06.11.2025, 20:12
Цитата Сообщение от _Ivana Посмотреть сообщение
В силу несравнимой сложности самого С++ перед Си и ассемблером.
что-что ?
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
06.11.2025, 21:14
Цитата Сообщение от Алексей1153 Посмотреть сообщение
что-что ?
Ну что за деланное удивление, ты же не вчера за С++ сел. Сравни толщину книжек стандартов С и С++ или Кернигана-Ритчи со Страуструпами.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,404
06.11.2025, 21:38
Так нужно еще понимать, о какой сложности идет речь: о высоком пороге вхождения или просто о средней сложности написания кода или вообще о времязатратности.
У ассемблера, разумеется, порог вхождения выше, чем у С++, но учитывая, что на С++ пишут огромные проекты с разнообразными паттернами проектирования, чего не делают на ассемблере, то что сложнее - это еще вопрос.
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,211
06.11.2025, 22:04
А что? Комиссия может до бесконечности изобретать новые фичи для с++?
Предел то есть?
Вот представим какая то команда, пишущая какой то очень полезный продукт...
С выходом нового с++, они сразу начинают его усиленно изучать, и внедрять в производство?
Когда ты пишешь на ассемблере, он простой... Ты изучаешь иерархию, строение машины, компьютера.
На с++ (сложный), ты изучаешь новые фантазии комиссии, которым нет конца.
Я не очень умный. Мне только два слова приходят - зачем и понты.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
06.11.2025, 22:26
Цитата Сообщение от Наталья8 Посмотреть сообщение
Комиссия может до бесконечности изобретать новые фичи для с++?
Как правило, эти фичи - следствие нужд тех самых команд, которые пишут какие-то очень полезные продукты.
Так что "фантазии комиссии" - это фантазии разработчиков, которые хотят видеть эти "фантазии" в языке, а "комиссия" год-другой согласует всё это, ведь каждый ту или иную "фантазию" видит как-то по-своему.

Добавлено через 5 минут
https://stdcpp.ru/
0
фрилансер
 Аватар для Алексей1153
6494 / 5722 / 1133
Регистрация: 11.10.2019
Сообщений: 15,283
07.11.2025, 07:01
_Ivana, при чём тут какие-то книжки.

взять, к примеру, вектор или ассоциативный массив.

На Си на это неделя уйдёт, да и то останется неудобным. На ассемблере можно и на годик засесть.
А на C++ это готовые контейнеры

отсюда и непонятно, чем C или ассемблер вдруг внезапно легче
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
07.11.2025, 08:30
Цитата Сообщение от _Ivana Посмотреть сообщение
- отсутствие ГЦ
что такое ГЦ?

Цитата Сообщение от _Ivana Посмотреть сообщение
- неудобно реализованная квази-статическая типизиция без АТД
что такое АТД? Почему "квази-статическая", а не просто статическая? Почему неудобно реализованная, как можно реализовать по другому, удобно?

Цитата Сообщение от _Ivana Посмотреть сообщение
- необоснованная самоуверенность большинства программистов на С++ в том, что они знают С++ хоть на каком-то уровне
На С++ можно писать по разному. Можно использовать все преимущества ООП, а можно обходиться старыми добрыми функциями, не создавая собственных классов. Но пользуясь плюшками плюсов: контейнерами, строками и т.п. Чем в таком случае С++ сложнее С?
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
07.11.2025, 08:57
Цитата Сообщение от Yana_T Посмотреть сообщение
Какие основные ошибки совершают начинающие при изучении C++ и как их избежать?
самая страшная ошибка:
люди запускающие компилятор С++ думают, что они уже автоматом кодят на С++,
но на самом деле они кодят на Си, становясь горизонтальными сишкошкодерами...

сишкошкодерство головного моска вычисляется очень просто:
достаточно моргнуть одним глазом на код пациента:


боссы-сишкошкодеров Керниган и Ритчи,ничего не знали об объектах,
когда придумывали так расставлять скобки в 1978 году...


ещё страшные ошибки(оно же и есть сишкошкодерство):
- пытаться везде юзать указатели.
- незнание факта, что ссылки нужны, чтобы не делать копии больших и малых кусков памяти.
- заблуждение, что фигурные скобки это для красоты, а не структура, стек и время жизни объекта.
- пытаться городить глобальные переменные: глобалы не нужны - ваще не нужны.
...

ещё страшные ошибки(байсико&пайтоно-шкодеров):
- считать, что отсутствие ГЦ это баг, а на самом деле это фича.
...
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
07.11.2025, 09:54
Цитата Сообщение от _Ivana Посмотреть сообщение
https://github.com/Ivana-/Lisc... t-overview
взгляд наткнулся на фразу:
вычисление списков
звучит, примерно, так же, как и
Code
1
съесть балалайку с мёдом
прямо чувствуется, что это какая-то очень специфическая весчъ...
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,404
07.11.2025, 11:56
Цитата Сообщение от XLAT
самая страшная ошибка:
люди запускающие компилятор С++ думают, что они уже автоматом кодят на С++,
но на самом деле они кодят на Си, становясь горизонтальными сишкошкодерами...
Тебе бы немного изучить логику, потому что ты делаешь ложные умозаключения.

Пример:
Есть ржавый автомобиль, который едет только по дороге типа А, но не может ехать по дороге типа Б.
Есть современный автомобиль, который умеет ездить как на дороге типа А, так и Б.
Когда современный автомобиль едет по дороге типа А, то это не означает, что он становится ржавым.
Казалось бы банальная логика, то XLAT не понимает.

Мораль басни: язык С++ позволяет писать по-разному и как бы ты не писал, ты пишешь на С++.
- Можешь использовать всякие std::calloc, std::realloc, std::free, std::malloc и т.д.
- Можешь использовать new, delete
- Можешь вообще не использовать ручное управление памятью
И то, что язык дает такую свободу, это огромное преимущество и фича.

Конечно, когда люди прям подключают сишные заголовки и пишут по правилам языка С и потом передают код на плюсовый компилятор, то это не считается, что они пишут на С++. Но зная XLAT, уверен, что он не это имел в виду, а дескать нужно использовать ООП по максимуму, не пользоваться низкоуровневыми фичами языка и раздробить детский проект на двадцать файлов, чтобы ты считался крестовиком.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2025, 11:56

Подводные камни realloc
Всем привет. Пишу структуру данных, которая при определенных обстоятельствах может перераспределять...

Использование long вместо long int. Возможны ли подводные камни?
Добрый день. Моя цель - писать кроссплатформенный C++ код, поэтому хочу отказаться от типа int...

Подводные камни обмена объектами между программой и DLL
Доброго времени суток. Есть программа, разделенная на основной модуль и DLL Для обмена...

Подводные камни использования библиотеки Qt в Visual Studio
С одной стороны, глупый вопрос: библиотека есть библиотека, берёшь и пользуешь. С другой стороны, я...

Необходимо разбить камни на две кучи таким образом, чтобы веса куч отличались не более чем в 1.5 раза.
Имеется N камней веса А1,А2,...,АN. Необходимо разбить их на две кучи таким образом, чтобы веса...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне. Это уже новая модель, модель сукцессии грибной. потоки фосфора, азота. Углерода. 5 видов организмов. Я даже. . .
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
сукцессия 5
anaschu 26.06.2026
ПЛАН РАЗРАБОТКИ математической модели сукцессии микоризных систем Переход AM → EcM (Endo + ErM) · Шумилов А. С. · ИФХиБПП РАН · Пущино · 2026 . . .
сукцессия 4
anaschu 25.06.2026
Более детализированный план разработки План доработки модели динамики микоризных симбиозов (EcM с гистерезисом) Цель: Реализовать логику переключения между эрикоидным (ErM) и эктомикоризным. . .
сукцессия 3
anaschu 25.06.2026
Примерный план работ по модели
сукцессия 2
anaschu 25.06.2026
параметризировочная калибровочная таблица будущей модели
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru