Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Пара вопросов по #include и template

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 ВОПРОСАМ !
Вернуться к началу
Fireman
Гость





СообщениеДобавлено: Пт Ноя 22 2002 09:07    Заголовок сообщения: Re: Пара вопросов по #include и template Ответить с цитатой

Блин ковычки не вывелись - жаль - сейчас приведу их:

В первом вопросе надо было:

#if !defined fstream.h
#include < fstream.h >
#endif


Во втором вопросе надо было:


template < class OBJECT > class list ...


list < MyStruct > list1 ; // до этого работал только с ним
list < unsigned int > list2 ;


return ;
Вернуться к началу
nut888
Гость





СообщениеДобавлено: Пн Ноя 25 2002 11:57    Заголовок сообщения: Re: Пара вопросов по #include и template Ответить с цитатой

Я например когда пишу свои header
добавляю туда примерно такой код
что гарантирует однократное использование

#ifndef SELECT_INCLUDED
#define SELECT_INCLUDED

.................

#endif // SELECT_INCLUDED
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...