Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
Внизкак разрулить 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c