C/C++

Что сложного в этом вашем Си плюс плюсе? Классы, объекты, конструкторы, наследование, полиморфизм?

Алексей Малин
Алексей Малин
6 013
> Классы, объекты, конструкторы, наследование, полиморфизм
Это есть в любом ООП языке.
Что сложного в C++ – это трудно перечислить. Есть много мелких сложностей в разных темах C++. Отчасти причина в том, что C++ ориентирован на высокую производительность, и некоторые элементы C++ нужны исключительно из-за этого.

Пример запутанной темы: https://habr.com/ru/post/157961/
Ещё сложная тема https://ru.wikipedia.org/wiki/Вариативный_шаблон
Мистер Аватария
Мистер Аватария
58 065
Лучший ответ
Barber Nv +1 по поводу шаблонов
Удачи с отладкой шаблонов, Санёк.. Вы просто ещё пороха не нюхали...
Ничего сложного. Чем проще язык, тем сложнее на нём писать. Сложность не в языке, а в программистах. Надо соблюдать дисциплину очень жёстко, а не хочется....
Dimocka Ivanov
Dimocka Ivanov
59 293
Санжарбек Сатыбалдыев Назвать C++ несложным языком может только человек, который не знает C++.

> Чем проще язык, тем сложнее на нём писать.
Да, обычно это так. Но в C++ много "лишних" сложностей: это особенности языка, которые нужны только для оптимизации. Ещё, некоторые вещи в C++ просто неудачно придуманы, получается бессмысленная сложность.

Простой язык, на котором сложно программировать - это Си, а не C++.
В широте возможностей и извращенной фантазии кодеров.
Так накодют что потом лопатой не разгребешь
Коос Сергей
Коос Сергей
12 592
Шаблонные классы создают путаницу. Указатели тоже довольно замороченная тема
MR
Maksim Rakov
7 902
статическая типизация не нравится.
MK
Mitko_K Kova
6 162
Barber Nv Гхм.. а вот некоторые двуногие TypeScript придумали. И считают что совершенно не напрасно ;)
Начнем с обязательной поддержки чистого Си (ANSI C) и всех его *кхм* нюансов... (malloc вместо new хотя бы)
Вы перечислили концепции и один метод из ООП (кстати, забыли про абстракцию и инкапсуляцию).
И вы вообще про какой C++ говорите? 98, 03?А может и 14 и выше?
Или просто "си с классами"?
Для кого-то представляют сложность указатели. Кстати, вы пытались найти утечку памяти в коде на почти тысячу строк? Незабываемые ощущения.
Так что ручное управление памятью тоже может стать серьезным камнем преткновения.
А может сложна какая-то конкретная область использования... Вы попробуйте бэкенд на плюсах запилить (кстати, вполне возможно, хоть на си пишите).
Ну и, конечно же, все в этом мире относительно. Плюсы явно сложны для того, чтобы устроиться на первую работу.
Евгений ===
Евгений ===
4 307
Самое сложное это надеть кожанную fist перчингтку (latex glow)
Костя Крот
Костя Крот
775
то, что он помойка и то, что почти никто не знает, что на этой помойке съедобно, а что нет, и как есть то, что съедобно.

он помойка. изучив какую-то фичу (примеры: указатели, массивы, ручной аллок памяти, строки на char[], любая фича из чистого Си) тебе надо не начинать использовать ее, не пытаться понять ее и не видеть ничего вокруг, а хорошенько убедиться, нету ли другой фичи, получше, иначе рискуешь писать код так, что ничего работать не будет.

это все равно что завести голубя в комнате набитой вещами и каждый день проверять, не насрал ли он где. именно так должно выглядеть изучение C++ без наставника-профессионала.

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

школьник максимум возьмется за кутэ (Qt), благо там гуй есть и дока получше и вообще все попроще. но учитывая специфику применения С++ -кутэ является скорее дополнением или даже извратом, а не основным направлением деятельности - C++ это не C# для простеньких прикладных прожек с гуем..