Есть ли предпочтительный способ организовать из них включают в себя директивы?
Нет общих соглашений. Некоторые предлагают сортировку по алфавиту, мне лично это не нравится и предпочитают держать их логически сгруппированными.
Лучше ли включить файлы, которые вам нужны, в .cpp-файл вместо файла .h?
В общем, да. Это уменьшает количество раз, которое компилятор должен открыть и прочитать файл заголовка, чтобы увидеть там включенные охранники. Это может сократить общее время компиляции. Иногда рекомендуется пересылать-объявлять как можно больше классов в заголовках и фактически включать их только в .cpp, по той же причине. Например, люди «Qt» делают это.
Являются ли единицы перевода затронуты каким-то образом?
В смысловом смысле нет.
Как насчет того, если мне это нужно в файле .h и .cpp, следует ли просто включить его в файл .h? Это будет иметь значение?
Просто включите его в заголовок.
Полезно ли хранить уже определенные файлы в предварительно скомпилированном заголовке (stdafx.h), например, std и сторонние библиотеки? Как насчет моих собственных файлов, следует ли включать их в файл stdafx.h по мере их создания?
Предварительно скомпилированные заголовки могут значительно сократить время компиляции.Например: один из моих проектов, который включает в себя boost::spirit::qi
, составляет 20 секунд с PCH, а 80 секунд - без. В общем, если вы используете какую-то сильно заполненную шаблонами библиотеку, такую как boost
, вы бы хотели использовать преимущество PCH.
Что касается вопроса в вашем примере кода:, так как вы не используете зЬй :: строку в заголовке, то лучше включить его в файл .cpp
. Это нормально #include <string>
в stdafx.h
тоже - но это просто добавит немного сложности вашему проекту, и вы вряд ли заметите ускорение компиляции.
Dupe. Это было задано много раз, часто он просто не связывал правильный: http://stackoverflow.com/questions/2762568/cc-include-file-order-best-practices – AJG85
@ AJG85 этот вопрос спрашивает, что * заказать * Включение должно быть включено. Я не прошу о заказе - я спрашиваю, где должны быть расположены объекты, в каком файле. – Default