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

4243
Полное руководство и список книг C ++

Ответы на этот вопрос - работа сообщества . Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия. На этот вопрос есть ответы на Переполнение стека на русском : Книги и учебные ресурсы по С ++ Этот вопрос пытается собрать...

2642
Почему «используется пространство имен std;» считается плохой практикой?

Другие говорили мне, что писать using namespace std;в коде неправильно, и что я должен использовать std::coutи std::cinнепосредственно вместо этого. Почему using namespace std;считается плохой практикой? Это неэффективно или существует риск объявления неоднозначных переменных (переменных, которые...

2145
Каковы основные правила и идиомы для перегрузки операторов?

Примечание. Ответы были даны в определенном порядке , но поскольку многие пользователи сортируют ответы по голосам, а не по времени, в которое они были даны, вот индекс ответов в том порядке, в котором они имеют наибольшее значение: Общий синтаксис перегрузки операторов в C ++ Три основных правила...

2003
Что такое идиома копирования и обмена?

Что это за идиома и когда ее следует использовать? Какие проблемы это решает? Меняется ли идиома при использовании C ++ 11? Хотя это упоминалось во многих местах, у нас не было ни единого вопроса и ответа «что это такое», так что вот оно. Вот частичный список мест, где это было упомянуто ранее:...

1780
Почему шаблоны могут быть реализованы только в заголовочном файле?

Цитата из стандартной библиотеки C ++: учебное пособие и справочник : Единственный переносимый способ использования шаблонов на данный момент - это реализовать их в заголовочных файлах с помощью встроенных функций. Почему это? (Пояснение: заголовочные файлы - не единственное переносимое решение. Но...

1706
Что такое семантика перемещения?

Я только что закончил слушать радио- интервью подкаста Software Engineering со Скоттом Мейерсом о C ++ 0x . Большинство новых функций имело смысл для меня, и сейчас я на самом деле рад C ++ 0x, за исключением одного. Я до сих пор не понимаю семантику перемещения ... Что это...

1603
Почему я должен использовать указатель, а не сам объект?

Я пришел из Java-фона и начал работать с объектами в C ++. Но одна вещь, которая пришла мне в голову, это то, что люди часто используют указатели на объекты, а не на сами объекты, например, это объявление: Object *myObject = new Object; скорее, чем: Object myObject; Или вместо использования...

1493
Что такое неопределенная ссылка / неразрешенная внешняя ошибка символа и как ее исправить?

На этот вопрос есть ответы на переполнение стека на русском : Ссылка на неразрешенный внешний символ (возможные причины) Что такое неопределенные ссылки / неразрешенные внешние ошибки символов? Каковы общие причины и как их исправить / предотвратить? Не стесняйтесь редактировать / добавлять свои...

1488
Что такое лямбда-выражение в C ++ 11?

Что такое лямбда-выражение в C ++ 11? Когда я буду использовать один? Какой класс проблемы они решают, что было невозможно до их введения? Несколько примеров и вариантов использования будут полезны....

1357
Что такое rvalues, lvalues, xvalues, glvalues ​​и prvalues?

В C ++ 03 выражение является либо значением r, либо значением l . В C ++ 11 выражение может быть: Rvalue именующий xvalue glvalue prvalue Две категории стали пятью категориями. Каковы эти новые категории выражений? Как эти новые категории связаны с существующими категориями rvalue и lvalue?...

1127
Где и почему я должен поставить ключевые слова «template» и «typename»?

В шаблонах, где и почему я должен поставить typenameи templateна зависимых именах? Что именно являются зависимыми именами в любом случае? У меня есть следующий код: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { // ......

1007
Каковы новые функции в C ++ 17?

Locked . Этот вопрос и его ответы заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. C ++ 17 теперь полностью готов, поэтому вряд ли он претерпит большие изменения. Сотни предложений были выдвинуты для C...

988
Неопределенные точки поведения и последовательности

Что такое «точки последовательности»? Какова связь между неопределенным поведением и точками последовательности? Я часто использую смешные и запутанные выражения, например a[++i] = i;, чтобы чувствовать себя лучше. Почему я должен прекратить использовать их? Если вы прочитали это, обязательно...

931
Каковы правила использования подчеркивания в идентификаторе C ++?

В C ++ принято называть переменные-члены с каким-то префиксом, обозначающим тот факт, что они являются переменными-членами, а не локальными переменными или параметрами. Если вы пришли из MFC, вы, вероятно, будете использовать m_foo. Я тоже видел myFooиногда. C # (или, возможно, просто .NET),...