Описание тега c++-faq
Предоставляет совместные редактируемые сообществом часто задаваемые вопросы по C++.
31
ответ
Каковы различия между структурой и классом в C++?
Этот вопрос уже задавался в контексте C#/.NET. Теперь я хотел бы изучить различия между структурой и классом в C++. Пожалуйста, обсудите технические различия, а также причины выбора того или иного в дизайне ОО. Начну с очевидной разницы: Если вы не …
18 сен '08 в 14:09
5
ответов
Каковы все функции-члены, созданные компилятором для класса? Это случается все время?
Каковы все функции-члены, созданные компилятором для класса? Это случается все время? как деструктор. Меня интересует, создан ли он для всех классов, и зачем нужен конструктор по умолчанию?
17 сен '10 в 09:48
14
ответов
Что такое умный указатель и когда я должен его использовать?
Что такое умный указатель и когда я должен его использовать?
20 сен '08 в 00:09
12
ответов
Что означает явное ключевое слово?
Что это explicit Ключевое слово означает в C++?
23 сен '08 в 13:58
4
ответа
Каков правильный ответ для cout << a++ << a;?
Недавно в одном из интервью возник следующий вопрос объективного типа. int a = 0; cout << a++ << a; ответы: а. 10б. 01с. неопределенное поведение Я ответил на вариант b, то есть вывод будет "01". Но к моему удивлению позже интервьюер ска…
28 май '12 в 10:09
1
ответ
Каковы новые функции в C++17?
C++17 теперь полностью готов, поэтому вряд ли он претерпит большие изменения. Сотни предложений были выдвинуты для C++17. Какие из этих функций были добавлены в C++ в C++17? При использовании компилятора C++, который поддерживает "C++1z", какие из э…
27 июн '16 в 18:06
4
ответа
Что такое прозрачные компараторы?
В C++14 ассоциативные контейнеры, по-видимому, изменились по сравнению с C++11 - [associative.reqmts]/13 говорит: Шаблоны функций-членов find, count, lower_bound, upper_bound, а также equal_range не должны участвовать в разрешении перегрузки, если т…
01 дек '13 в 21:21
19
ответов
Почему летучие существуют?
Что это volatile ключевое слово делать? В C++ какую проблему это решает? В моем случае я никогда сознательно не нуждался в этом.
16 сен '08 в 13:59
2
ответа
Что такое шаблоны вывода и когда мы должны их использовать?
Стандарт C++17 вводит "руководство по выводу шаблона". Я полагаю, что они имеют какое-то отношение к новому выводу аргументов шаблона для конструкторов, представленному в этой версии стандарта, но я еще не видел простого объяснения в стиле FAQ того,…
03 дек '16 в 19:35
2
ответа
Обоснование принуждения некоторых операторов к участию
В C++ есть 4 оператора, которые могут быть перегружены, но не могут быть перегружены как отдельно стоящие (иначе говоря, автономные) функции. Эти операторы: operator = operator () operator -> operator [] Эта тема прекрасно объясняет причину запре…
14 окт '10 в 22:15
4
ответа
Когда сделать тип неподвижным в C++11?
Я был удивлен, что это не показывается в моих результатах поиска, я думал, что кто-то бы спрашивал это раньше, учитывая полезность семантики перемещения в C++ 11: Когда мне нужно (или это хорошая идея для меня) сделать класс неподвижным в C++ 11? (П…
13 янв '13 в 11:05
5
ответов
Объясните C++ SFINAE программисту, не являющемуся C++
Что такое SFINAE в C++? Не могли бы вы объяснить это словами, понятными программисту, который не разбирается в C++? Кроме того, какому понятию в языке вроде Python соответствует SFINAE?
04 авг '10 в 16:28
1
ответ
Сколько существует версий стандартов C++?
В C есть C89, C99 и C11; что насчет C++? Есть ли обновление с тех пор, как оно вышло?
15 окт '10 в 07:49
8
ответов
Зачем нам на самом деле нужно частное или защищенное наследование в C++?
В C++ я не могу вспомнить случай, в котором я хотел бы наследовать private/protected от базового класса: class Base; class Derived1 : private Base; class Derived2 : protected Base; Это действительно полезно?
17 дек '08 в 12:29
6
ответов
Что такое любопытно повторяющийся шаблон (CRTP)?
Не обращаясь к книге, кто-нибудь может дать хорошее объяснение CRTP с примером кода?
13 ноя '10 в 15:30
9
ответов
Почему использование "нового" вызывает утечки памяти?
Сначала я выучил C#, а сейчас начинаю с C++. Как я понимаю, оператор new в C++ не похож на тот, что в C#. Можете ли вы объяснить причину утечки памяти в этом примере кода? class A { ... }; struct B { ... }; A *object1 = new A(); B object2 = *(new B(…
12 янв '12 в 18:01
11
ответов
Каковы все распространенные неопределенные поведения, о которых должен знать программист C++?
Каковы все распространенные неопределенные поведения, о которых должен знать программист C++? Скажи, как: a[i] = i++;
15 дек '08 в 06:55
2
ответа
Уничтожение объектов в C++
Когда именно объекты уничтожаются в C++, и что это значит? Нужно ли уничтожать их вручную, поскольку нет сборщика мусора? Как возникают исключения? (Примечание. Предполагается, что это будет вход в FAQ по C++ в Stack Overflow. Если вы хотите критико…
19 июн '11 в 14:43
4
ответа
Как написать стандарт ISO C++, соответствующий пользовательским операторам new и delete?
Как написать стандарт ISO C++ new а также delete операторы? Это продолжение перегрузки новых и удаления в чрезвычайно освещенном разделе часто задаваемых вопросов по С ++, перегрузке операторов и ее последующей деятельности. Почему следует заменить…
25 авг '11 в 16:43
15
ответов
Может ли шаблон функции-члена класса C++ быть виртуальным?
Я слышал, что шаблоны функций-членов класса C++ не могут быть виртуальными. Это правда? Если они могут быть виртуальными, то каков пример сценария, в котором можно использовать такую функцию?
01 мар '10 в 06:26