Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.19;
Скачать: CL | DM;

Вниз

как разрулить circular unit reference?   Найти похожие ветки 

 
ranetka ©   (2004-11-29 13:43) [0]

необходимо реализовать такой случай:
<unit1>
interface
uses unit2; // там описан тип В
type
A=class
m_b : B;
end;

<unit2>
interface
uses unit1;  // там описан тип А
type
B=class
m_a : A;
end;
естественно, компиллятор выдает ошибку circular unit reference to unit1
но здесь нельзя перенести один из uses-ов в часть implementation.
что делать? есть в delphi что-то вроде заголовочных файлов, как в с++?


 
Digitman ©   (2004-11-29 13:52) [1]


> есть в delphi что-то вроде заголовочных файлов, как в с++?


нет.
Паскаль-код компилируется по однопроходной схеме.


 
ranetka ©   (2004-11-29 17:26) [2]

и как тогда в паскале решаются подобные проблемы? только изменением логики?


 
Poirot ©   (2004-11-29 17:35) [3]

меняй архитектуру. Если есть такая проблема - значит что-то в неё не так. Вообще вобщем случае можно поместить Uses для другого модуля в implementation. Но в твоём случае это не поможет


 
Плохиш ©   (2004-11-29 17:52) [4]


> ranetka ©   (29.11.04 13:43)

Объедини A и B в одном модуле.


 
ranetka ©   (2004-12-03 02:34) [5]

всем спасибо, изменила логику на такую:
<unit1>
uses unit2
a=class;
m_b:B;
procedure SomeProc();
end;
procedure a.SomeProc();
begin
  m_b:=SomeFunc();
  ...
end;

<unit2>
b=class
function SomeFunc():b
end;



Страницы: 1 вся ветка

Текущий архив: 2004.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
9-1092940461
Колбасьев
2004-08-19 22:34
2004.12.19
Анимация X файлов + волосы на текстуре


14-1101531383
Popka DuraQ
2004-11-27 07:56
2004.12.19
Значки для меню


1-1102259020
PURGEN
2004-12-05 18:03
2004.12.19
Компиляция


8-1095663271
AndersFiend
2004-09-20 10:54
2004.12.19
Компонент, позволяющий рисовать линии со стрелкой на canvas


4-1099759708
AnD
2004-11-06 19:48
2004.12.19
Иконка в SystemTray