На всіх наших курсах c ++ всі викладачі завжди кладуть using namespace std;
відразу після #include
s у свої .h
файли. Мені це здається небезпечним з того часу, включивши цей заголовок в іншу програму, я отримаю імпортоване ім’я до моєї програми, можливо, не усвідомлюючи, не маючи намір чи бажаючи цього (включення заголовка може бути дуже глибоко вкладеним).
Отже, моє запитання подвійне: чи я правий, що using namespace
його не слід використовувати у файлах заголовків, та / чи є якийсь спосіб його скасувати, щось на кшталт:
//header.h
using namespace std {
.
.
.
}
Ще одне запитання в цих же рядках: Чи повинен заголовок містити #include
всі заголовки, яким .cpp
потрібен відповідний файл, лише ті, які потрібні для визначення заголовка, і дозволити .cpp
файлу #include
решту, або жоден і оголосити все, що йому потрібно extern
?
Міркування, що стоїть за запитом, те саме, що вище: Я не хочу сюрпризів, коли включати .h
файли.
Також, якщо я маю рацію, чи це звичайна помилка? Я маю на увазі в реальному програмуванні та в «реальних» проектах там.
Дякую.
using namespace
заяви, ви можете використати повноцінне ім’я для вирішення проблеми.