Questions tagged [c++]

C++ - это универсальный язык программирования. Первоначально он был разработан как расширение для языка Си и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте эту метку для вопросов о коде (подлежащем компиляции) с помощью компилятора C++. Используйте специфичную для версии метку в вопросах, связанных с конкретной стандартной редакцией [C++98], [C++03], [C++11], [C++14], [C++17], [C++20] и т. д.

C++ (не путать с языком программирования C) — статически типизированный, компилируемый, мультипарадигменный, высокоуровневый язык программирования общего назначения, разрабатывавшийся Бьярне Страуструпом (Bjarne Stroustrup) начиная с 1979 года, и в 1985 году выпущенный для коммерческого использования.
В отличие от языка C, в C++ улучшена безопасность типов, добавлена поддержка автоматического управления ресурсами, реализованы объектно-ориентированная и обобщенная парадигмы программирования, обработка исключений и многое другое.

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

Использование метки

Указывайте метку используемого компилятора, целевой платформы и ОС, если требуется решение именно для них или вопрос относится к их специфическим особенностям (например, сообщениям об ошибках конкретного компилятора или системным вызовам конкретной ОС).

Указывайте метку версии стандарта (например, ), если требуется решение средствами именно этой версии или вопрос связан с возможностями языка, введенными в этой версии. Если метка версии не указана, подразумевается использование самой новой версии.

Если вопрос относится к расширению C++ от Microsoft для разработки .NET-приложений, он должен содержать метку (вместо метки или, иногда, совместно с ней — например, для вопросов по взаимодействию .NET с кодом на стандартном C++). При этом, вопросы по использованию Unmanaged .NET API в приложениях на стандартном C++ не должны содержать метку .

Список популярных вопросов по языку помечается дополнительной меткой .

Стандарт языка C++

Вопрос Где взять стандарт C++?.

Сайт Российской рабочей группы по стандартизации (РГ21 C++) — прием предложений в стандарт C++ (на русском).

Std-Proposals — новые предложения по включению в стандарт C++ (на английском).

Документы комитета по стандартизации — все существующие предложения по включению в стандарт C++ (на английском).

Онлайн-компиляторы

Статус поддержки компиляторами требований стандарта

Чат-комната

32562 questions
32
votes
3 answers

Зачем нужно неименованное пространство имен?

какую пользу можно извлечь из подобной конструкции: namespace{ int i; }
perfect
  • 10,021
27
votes
3 answers

Как сделать сайт на C++?

Здравствуйте! Видел, но не нашёл нужных статей. Кто имеет опыт, как делать сайт на C++ и какие подводные камни? Можно ли работать с SQLITE? Спасибо.
24
votes
2 answers

Как работает деструктор

Объясните, что именно освобождает память при вызове деструктора для объекта, ведь по умолчанию он имеет пустое тело.
24
votes
3 answers

Изменение констант базовых типов

Хотелось бы понять, как С++ обрабатывает константы базовых типов. Что будет, если при помощи плясок с бубном и указателями изменить значение, находящееся в ячейке памяти, где, по идее, и должна содержаться константа? Есть следующий код: #include…
23
votes
8 answers

Найти произведение двух наибольших скоростей

Я писал ЕГЭ по информатике, сегодня стали известны результаты. Почему-то в C4 мне поставили всего лишь 1 балл из 4, хотя задача наипростейшая. К сожалению, у меня нет точной формулировки задания, поэтому напишу по памяти. Вводится сначала число N…
devoln
  • 5,441
21
votes
3 answers

Нулевая инициализация

В каких случаях происходит инициализация нулями и в каких нет?
Kioqps
  • 213
21
votes
1 answer

Удаление нулевого указателя

Что происходит при попытке удаления нулевого указателя через delete?
vika
  • 213
18
votes
5 answers

Передача по ссылке с последующим копированием vs передача по значению

Есть некий тяжёлый для копирования тип, например: struct S { int a[100]; }; И стоит задача обработки значения переменной этого типа с возвратом изменённой копии, т.е. оригинал должен быть сохранён. Напрашиваются два подхода: S test(const S&…
αλεχολυτ
  • 28,987
  • 13
  • 60
  • 119
18
votes
2 answers

Разница между .h и .hpp

В чем разница между файлами с расширениями .h и .hpp в C++? Что лучше использовать?
user26699
17
votes
2 answers

В чем разница foreach и std::for_each в с++?

Я новичок в C++ Читаю пример и наткрулся на такую конструкцию std::for_each и не понял, зачем она нужна когда есть стандартный for(val v : array)? Протестировал на время выполнения #include #include #include #include…
Sirop4ik
  • 10,954
17
votes
3 answers

Выделение памяти типа auto

Почему данная строка не вызывает у разработчиков стандарта казуса? auto p = new auto(42);
rikimaru2013
  • 2,653
17
votes
2 answers

Что за тип size_t?

Что представляет из себя тип size_t, похожий на тип int? И для чего его используют?
perfect
  • 10,021
16
votes
1 answer

Вызов конструктора без скобок

У меня родился вопрос по мотивам вот этого вопроса а точнее комментариев к ним. Итак вопрос: в чем разница между new T и new T()?
Andy_Reed
  • 907
15
votes
6 answers

Почему ++i считается lvalue, а i++ rvalue?

Почему ++i считается lvalue, а i++ rvalue? Я нашел ответ на данный вопрос на stackoverflow, но мой ужасный английский не позволяет мне грамотно в этом разобраться. Ведь приоритет префиксного и постфиксного ++ всё равно выше, чем & и по идее в любом…
G71
  • 2,089
15
votes
2 answers

Хранится ли в конце string терминальный символ?

Хранится ли в конце строк типа string терминальный символ?
1
2 3
99 100