Почему директивы include располагаются поверх заголовочных файлов?

Однажды на уроке программирования мне сказали, что C++ добился лучшей читабельности, позволив программисту объявлять свою переменную в любом месте функционального блока. Таким образом, переменные были сгруппированы вместе с разделом кода, который имел дело с ними.

Почему бы нам не сделать то же самое для включений? Иными словами, почему не рекомендуется помещать включаемый файл рядом с определением, которое на самом деле будет его использовать?

parser::parser()
{
  // some initialization goes there which does not make use of regex
}

#include <boost/regex.hpp>
parser::start()
{
  // here we need to use boost regex to parse the document
}
5
задан qdii 27 July 2012 в 22:09
поделиться