G
Guest
Ситуация сложилас таким образом
По правилам хорошего стиля програмирования люди делают
три файла
file1.h - интерфейсная часть
file1.cpp - реализация
file.cpp - тестовая часть (в которой содержится main())
причем file1.cpp инклудит в себя file1.h
и file.cpp инклудит в себя тоже file1.h
Наскоко мне известно смысл директивы #include
это просто тупо вставить кусок кода в том месте где
встречается эта директива
Если все проинклудить явно (по всем правилам) три выше описаных файла
то возникает вопрос :
как в файле file.cpp видно file1.cpp (ведь он же нигде не инклудится)
значит что-то вызывается не явно! Без моего ведома...
Потомуш-то даная фишка прокатывает только для класов.
А сделай ты
file1.h - интерфейсная часть (содержит определения типов, констант, переменных...)
file1.cpp - реализация (содержит только функции которые используют все константы, переменные ... объявленные в file1.h)
file.cpp - тестовая часть (в которой содержится main() использует функции file1.cpp)
Ничо компилится не будет
Подскажите как это правильно сделать.
Насколько мне известно перед компиляцией выполняется препроцесор
который проходится по всему проекту и собирает все инклуды и дефайны и
дампит их всех в один временный файл с расширением *.I
вот этот то файл и компилится но он временный, и после компиляции удаляется
но ещо я точно знаю что можна заставить компилятор этот файл не удалять
Но я не знаю как это сделать чтобы этот файл остался
По правилам хорошего стиля програмирования люди делают
три файла
file1.h - интерфейсная часть
file1.cpp - реализация
file.cpp - тестовая часть (в которой содержится main())
причем file1.cpp инклудит в себя file1.h
и file.cpp инклудит в себя тоже file1.h
Наскоко мне известно смысл директивы #include
это просто тупо вставить кусок кода в том месте где
встречается эта директива
Если все проинклудить явно (по всем правилам) три выше описаных файла
то возникает вопрос :
как в файле file.cpp видно file1.cpp (ведь он же нигде не инклудится)
значит что-то вызывается не явно! Без моего ведома...
Потомуш-то даная фишка прокатывает только для класов.
А сделай ты
file1.h - интерфейсная часть (содержит определения типов, констант, переменных...)
file1.cpp - реализация (содержит только функции которые используют все константы, переменные ... объявленные в file1.h)
file.cpp - тестовая часть (в которой содержится main() использует функции file1.cpp)
Ничо компилится не будет
Подскажите как это правильно сделать.
Насколько мне известно перед компиляцией выполняется препроцесор
который проходится по всему проекту и собирает все инклуды и дефайны и
дампит их всех в один временный файл с расширением *.I
вот этот то файл и компилится но он временный, и после компиляции удаляется
но ещо я точно знаю что можна заставить компилятор этот файл не удалять
Но я не знаю как это сделать чтобы этот файл остался