Хотя многие люди решили вашу ошибку за вас, похоже, никто не ответил на ваш первоначальный вопрос:
как работает заголовок, в том числе и в c ++?
Когда препроцессор находит директиву #include
, он заменяет ее всем содержимым указанного файла.
Вы можете прочитать больше о директивах препроцессора на cplusplus.com .
Обновление : Чтобы проиллюстрировать это, вы можете попробовать следующее, если у вас есть gcc
handy:
echo '#include <iostream>' > test.cxx
gcc -E test.cxx
Вы увидите контрасты iostream
, пронизывающие ваши глаза, когда предварительно обработанный исходный код отправляется на стандартный вывод.