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

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

13
Когда я могу использовать предварительную декларацию?
Я ищу определение, когда мне разрешено делать предварительное объявление класса в заголовочном файле другого класса: Могу ли я сделать это для базового класса, для класса, который является членом, для класса, переданного функции-члену по ссылке и т. Д.?

4
Почему iostream :: eof внутри условия цикла (т.е. `while (! Stream.eof ())`) считается неправильным?
Я только что нашел комментарий в этом ответе о том, что использование iostream::eofв условии цикла «почти наверняка неправильно». Я обычно использую что-то вроде while(cin>>n)- что, я думаю, неявно проверяет EOF. Почему проверка на eof явно использует while (!cin.eof())неправильно? Чем он отличается от использования scanf("...",...)!=EOFв C (который я часто использую без …
595 c++  iostream  c++-faq 

12
C ++: «std :: endl» против «\ n»
Многие книги C ++ содержат пример кода, подобного этому ... std::cout << "Test line" << std::endl; ... так что я всегда так делал. Но я видел много кода от таких разработчиков: std::cout << "Test line\n"; Есть ли техническая причина, чтобы отдавать предпочтение одному над другим, или это просто вопрос стиля …

6
Правила аннулирования итераторов
Каковы правила аннулирования итераторов для контейнеров C ++? Желательно в формате сводного списка. (Примечание. Предполагается, что это будет вход в FAQ по C ++ в Stack Overflow . Если вы хотите критиковать идею предоставления FAQ в этой форме, то публикация в meta, с которой все это началось, будет подходящим местом …
543 c++  c++11  iterator  c++17  c++-faq 

5
Как я могу использовать массивы в C ++?
C ++ унаследовал массивы от C, где они используются практически везде. C ++ предоставляет абстракции, которые проще в использовании и менее подвержены ошибкам ( std::vector<T>начиная с C ++ 98 и std::array<T, n>начиная с C ++ 11 ), поэтому потребность в массивах возникает не так часто, как в C. Однако, когда …

5
В чем разница между «STL» и «C ++ Standard Library»?
Кто-то обратил мое внимание на эту статью , утверждая, что (я перефразирую) термин STL неправильно используется для ссылки на всю Стандартную библиотеку C ++ вместо частей, взятых из SGI STL. (...) это относится к «STL», несмотря на то, что очень немногие люди все еще используют STL (который был разработан в …

30
Каковы различия между структурой и классом в C ++?
Этот вопрос уже задавался в контексте C # /. Net . Теперь я хотел бы изучить различия между структурой и классом в C ++. Пожалуйста, обсудите технические различия, а также причины выбора того или иного в дизайне ОО. Начну с очевидной разницы: Если вы не укажете public:или private:, члены структуры …
441 c++  oop  class  struct  c++-faq 

6
Каковы основные цели использования std :: forward и какие проблемы он решает?
При совершенной пересылке std::forwardиспользуется для преобразования именованных ссылок rvalue t1и t2в безымянные ссылки rvalue. Какова цель сделать это? Как это повлияет на вызываемую функцию, innerесли мы оставим t1& t2как значения? template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); }

6
C ++ 11 значения и путаница в семантике перемещения (оператор return)
Я пытаюсь понять rvalue ссылки и переместить семантику C ++ 11. В чем разница между этими примерами, и какой из них не будет делать векторные копии? Первый пример std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); Второй пример std::vector<int>&& return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return …


6
Как работает процесс компиляции / компоновки?
Как работает процесс компиляции и компоновки? (Примечание. Предполагается, что это будет вход в FAQ по C ++ в Stack Overflow . Если вы хотите критиковать идею предоставления FAQ в этой форме, то публикация в meta, с которой все это началось, будет подходящим местом для этого. Этот вопрос отслеживается в чате …

12
Где я могу найти текущие стандартные документы C или C ++?
Ответы на этот вопрос - работа сообщества . Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия. На этот вопрос есть ответы на Переполнение стека на русском : Где взять стандарт C ++? На многие вопросы ответ, кажется, находится в «стандарте». Однако …
394 c++  c  standards  c++-faq 

4
Что такое оптимизация копирования и возврата значений?
Что такое копирование? Что такое (названная) оптимизация возвращаемого значения? Что они подразумевают? В каких ситуациях они могут возникнуть? Какие ограничения? Если вы получили ссылку на этот вопрос, вы, вероятно, ищете введение . Технический обзор см. В стандартной справке . Смотрите общие случаи здесь .

11
Устранить ошибки сборки из-за циклической зависимости между классами
Я часто нахожусь в ситуации, когда я сталкиваюсь с множественными ошибками компиляции / компоновщика в проекте C ++ из-за некоторых неудачных проектных решений (принятых кем-то еще :)), которые приводят к круговым зависимостям между классами C ++ в разных заголовочных файлах (также может случиться в том же файле) . Но, к …

6
Какой анализатор XML я должен использовать в C ++? [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека. Закрыто 2 года назад . Улучшить этот вопрос У меня есть XML-документы, которые мне нужно проанализировать и / или мне нужно …
344 c++  xml-parsing  c++-faq 

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