Синтаксис заголовка C ++ и размещение заголовка - PullRequest
0 голосов
/ 14 января 2020

Мой вопрос о правильном синтаксисе и использовании защиты заголовков. Например, если я включаю несколько общих библиотек в свой код C ++, могу ли я сделать защиту заголовка, как показано ниже? Также из документации, которую я мог найти в заголовочных файлах, было предложено поместить вашу защиту заголовков в заголовочный файл. Я использую Microsoft Visual Studio. Могу ли я просто поместить файлы защиты заголовка и #include в мой основной исходный файл? Или это плохая практика? Я знаю, что вы можете использовать #pragma для функции защиты заголовка. Однако это не поддерживаемый стандарт, поэтому я стараюсь не использовать его.

#ifndef HEADER_GUARD
#define HEADER_GUARD
#include <iostream> 
#include <fstream>  
#include <string>
#include <iomanip>
#endif

Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 15 января 2020

Вы не должны писать защиту заголовка в файле исходного кода (. cpp).

Мы также должны избегать защиты двойного заголовка Использование защиты двойного включения в C ++

Защита заголовка состоит в том, чтобы избежать многократного включения заголовочного файла во время компиляции кода.

Кроме того, при добавлении файла #include имейте в виду, что нам не следует добавлять туда ненужные файлы. Например, рассмотрим случай, если исходный файл требует #include <iostream>, но вы включили его в заголовочный файл, тогда этого следует избегать. Такой случай #include <iostream> только в исходном файле.

#pragma once поддерживается многими компиляторами, но не является языковым стандартом и не гарантирует, что на файл ссылаются из удаленного расположения и с разных дисков.

...