Вопросы с тегом «c++-faq»

Предоставляет совместный, отредактированный сообществом C ++ FAQ

9
Почему volatile не считается полезным в многопоточном программировании на C или C ++?
Как показано в этом ответе, который я недавно опубликовал, мне кажется, что я не совсем понимаю полезность (или ее отсутствие) volatileмногопоточного программирования. Насколько я понимаю, в любой момент, когда переменная может быть изменена вне потока контроля фрагмента кода, обращающегося к ней, эта переменная должна быть объявлена volatile. Обработчики сигналов, регистры …

7
Каковы преимущества использования nullptr?
Этот фрагмент кода концептуально делает то же самое для трех указателей (безопасная инициализация указателя): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; Итак, каковы преимущества назначения указателей nullptrперед присвоением им значений NULLили 0?
163 c++  c++11  null  c++-faq  nullptr 

5
Что такое правильное объявление основного?
Какова правильная подпись mainфункции в C ++? Каков правильный тип возвращаемого значения и что означает возвращать значение main? Каковы допустимые типы параметров и каковы их значения? Это зависит от системы? Изменились ли эти правила с течением времени? Что произойдет, если я нарушу их?
147 c++  main  c++-faq 

3
Какие манипуляторы иоманипов являются «липкими»?
Недавно у меня возникла проблема с созданием stringstreamиз-за того, что я ошибочно предположил, std::setw()что это повлияет на поток строк при каждой вставке, пока я не изменил его явно. Однако после вставки он всегда сбрасывается. // With timestruct with value of 'Oct 7 9:04 AM' std::stringstream ss; ss.fill('0'); ss.setf(ios::right, ios::adjustfield); ss …
144 c++  c++-faq 

4
Как я могу эффективно выбрать контейнер стандартной библиотеки в C ++ 11?
Есть хорошо известное изображение (шпаргалка) под названием «Выбор контейнера C ++». Это блок-схема, чтобы выбрать лучший контейнер для желаемого использования. Кто-нибудь знает, есть ли уже версия на C ++ 11? Это предыдущий:
135 c++  c++11  c++-faq 

9
Почему использование «нового» вызывает утечку памяти?
Сначала я выучил C #, а теперь начинаю с C ++. Насколько я понимаю, оператор newв C ++ не похож на оператор в C #. Можете ли вы объяснить причину утечки памяти в этом примере кода? class A { ... }; struct B { ... }; A *object1 = new …

5
Перегрузка операторов доступа к членам ->,. *
Я понимаю , большинство перегрузки операторов, за исключением операторов доступа члена ->, .*, и ->*т.д. В частности, что передается этим операторным функциям, а что нужно возвращать? Как операторная функция (например operator->(...)) узнает, на какой член ссылается? Это может знать? Это вообще нужно знать? Наконец, нужно ли учитывать какие-либо константы? Например, …


7
Полиморфизм в C ++
НАСКОЛЬКО МНЕ ИЗВЕСТНО: C ++ предоставляет три различных типа полиморфизма. Виртуальные функции Перегрузка имени функции Перегрузка оператора В дополнение к трем вышеупомянутым типам полиморфизма существуют и другие виды полиморфизма: во время выполнения время компиляции специальный полиморфизм параметрический полиморфизм Я знаю, что полиморфизм времени выполнения может быть достигнут с помощью виртуальных …

4
Когда в C ++ 11 сделать тип неподвижным?
Я был удивлен, что это не появилось в моих результатах поиска, я подумал, что кто-то спросил бы об этом раньше, учитывая полезность семантики перемещения в C ++ 11: Когда мне нужно (или это хорошая идея) сделать класс неподвижным в C ++ 11? (Причины, отличные от проблем совместимости с существующим кодом.)

10
Правильное использование стека и кучи в C ++?
Я занимаюсь программированием некоторое время, но в основном это были Java и C #. На самом деле мне никогда не приходилось управлять памятью самостоятельно. Я недавно начал программировать на C ++, и я немного не понимаю, когда мне следует хранить вещи в стеке, а когда - в куче. Я понимаю, …

3
Какие реализации смарт-указателя C ++ доступны?
Сравнение, плюсы, минусы и когда использовать? Это побочный продукт ветки сборки мусора, где то, что я считал простым ответом, вызвало много комментариев о некоторых конкретных реализациях интеллектуальных указателей, поэтому казалось, что стоит начать новый пост. В конечном итоге вопрос заключается в том, каковы различные реализации интеллектуальных указателей в C ++ …

4
Как преобразовать число в строку и наоборот в C ++
Поскольку этот вопрос задают каждую неделю, этот FAQ может помочь многим пользователям. Как преобразовать целое число в строку в C ++ как преобразовать строку в целое число в C ++ как преобразовать число с плавающей запятой в строку в C ++ как преобразовать строку в число с плавающей запятой в …

8
Почему в заголовке указаны встроенные функции C ++?
NB. Это не вопрос о том, как использовать встроенные функции или как они работают, а скорее о том, почему они сделаны такими, какие есть. Объявление функции-члена класса не требует определения функции, поскольку inlineэто только фактическая реализация функции. Например, в заголовочном файле: struct foo{ void bar(); // no need to define …


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.