Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с циклическими ссылками

632
17 апреля 2004 года
Innate
20 / / 20.08.2000
Как разрешать циклические ссылки в шаблонных классах? Ведь они же должны быть описаны в .h?
Объявления class CClass; не хватает для вызова методов, а включение вызывает повторное определение методов.
1.8K
17 апреля 2004 года
MishaSt
170 / / 11.08.2003
Правда нифега не понял....
Но может это то, что тебе надо:
#ifndef _MY_H
#define _MY_H
<содержимое>
#endif
632
17 апреля 2004 года
Innate
20 / / 20.08.2000
Цитата:
Originally posted by MishaSt
Правда нифега не понял....
Но может это то, что тебе надо:
#ifndef _MY_H
#define _MY_H
<содержимое>
#endif



Может быть, сейчас проверю...

632
17 апреля 2004 года
Innate
20 / / 20.08.2000
Цитата:
Originally posted by MishaSt
Правда нифега не понял....
Но может это то, что тебе надо:
#ifndef _MY_H
#define _MY_H
<содержимое>
#endif



Нет. Я окружил этими директивами каждый класс в разных .h и попытался включить ашники циклически, но компилятор сначала создает длинную простыню из всех файлов, а потом решает, что не будет компилировать, поэтому эта простыня получается бесконечной.
Поблема в том, что реализация каждого класса и его объявление в одном файле. А классы содержат указатели друг на друга.
Вот.

3
18 апреля 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Innate


Нет. Я окружил этими директивами каждый класс в разных .h и попытался включить ашники циклически, но компилятор сначала создает длинную простыню из всех файлов, а потом решает, что не будет компилировать, поэтому эта простыня получается бесконечной.
Поблема в том, что реализация каждого класса и его объявление в одном файле. А классы содержат указатели друг на друга.
Вот.



Codeguard здесь не поможет, он служит другим целям.

Для решения твоей задачи первое, чо приходит в голову, это введение некоторого базового класса, указатели на которой и должны храниться в твоих классах, которые являются дочерними этого базового.
Может, есть и другой путь, но для этого требуется более конкретная информация. Приведи описания классов.

632
18 апреля 2004 года
Innate
20 / / 20.08.2000
Цитата:
Originally posted by Green


Codeguard здесь не поможет, он служит другим целям.

Для решения твоей задачи первое, чо приходит в голову, это введение некоторого базового класса, указатели на которой и должны храниться в твоих классах, которые являются дочерними этого базового.
Может, есть и другой путь, но для этого требуется более конкретная информация. Приведи описания классов.



Дело в том, что я сначала писал шаблонные классы.
Но, так как они компилируются только после того, как объявишь специфицированный объект, я стал сначала писать классы под простой тип, чтобы быстро узнавать об ошибках. Тут и меня и посыпались все поблемы с include'ами. Я уже отчаялся решить их и решил переписать уже написанный код как шаблон, и все проблемы исчезли. Наверное компилятор код с шаблонами как-то умно соединяет.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог