Fireman Гость
|
Добавлено: Пт Ноя 22 2002 09:01 Заголовок сообщения: Пара вопросов по #include и template |
|
|
Приветствую!
1) Если в каждом файле использовать
#include
то компилятор выдает всякие глупые ошибки, если же указать все(!) библиотеки в головном файле (где лежит функция main), то ошибок нет. НО такого счастья мне не нужно ибо ряд своих библиотек (*.h) я хотел бы использовать и в других программах, и поэтому необходимые библиотеки (например fstream.h) я хотел бы определять уже в тех .h файлах, НО способ прописывания во всех (где используются функции библиотек) файлах прописать:
#if !defined fstream.h #include #endif
или
#if !defined list.h #include #endif
не помогает и ошибки продолжают лезть. Или, когда их нет (ошибок), т.е. когда библиотека таким образом определена только в 1 файле, а в других файлах не определяются эти библиотеки, то компилятор (Visual C++ 7.0) выдает предупреждение:
d:\Пользователи\Fireman\Проект\test.cpp(1 1): warning C4067: unexpected tokens following preprocessor directive - expected a newline
Как же со всем этим бороться, ибо в моих .h библиотеках просто необходимо #include, чтобы и в будущих проектах не возиться с поиском всех необходимых библиотек, которые необходимо будет подключить в самом первом файле?
2) Создал класс двунаправленного списка:
template class list ...
и данная вещь хорошо работала, например при определении:
list new_list ;
НО когда я попробовал в 1 файле использовать два разно определенных класса, т.е.:
list list1 ; // до этого работал только с ним list list2 ;
то программа (я тестировал ее части под DOS, т.е. под Visual C++ консольное приложение) перестала выходить при
return ;
Как мне кажется - это связана с освобождением памяти при выходе.
Как от этого избавиться? -----
НЕ ПОДСКАЖЕТЕ В ЧЕМ ДЕЛО ПО ЭТИМ 2 ВОПРОСАМ ! |
|