Существуют ли во FreePascal "дружественные" классы или, лучше возможность объявить, как friend метод класса?
Не помещением классов в один модуль, а каким-либо другим способом возможно это сделать?
friend's
Модератор: Модераторы
А.Н. писал(а):Существуют ли во FreePascal "дружественные" классы или, лучше возможность объявить, как friend метод класса?
Не помещением классов в один модуль, а каким-либо другим способом возможно это сделать?
пока никак! в делфи придумали class-helper-ы.
единственный способ - всё в одном модуле.
Ого... Посмотрел что это такое.
Как-то не вдохновило:
Такое подозрение, что если этим начнут пользоваться направо и налево (а, вероятно, начнут), программы, написанные на Delphi, читать станет невозможно.
Я имел ввиду методы friend, которые надо явно объявлять в классе, а не "подмешивания".
Например, есть коллекция сущностей. Коллекция их загружает/сохраняет.
Некоторые поля сущности - только для чтения.
Но коллекции надо дать доступ к этим полям, чтобы загрузить их из источника.
В сущности объявлен метод коллекции, как friend...
Доступ "ко всему в одном файле" очень не нравится. А делать "в обход" - тоже сложно и заумно.
Но за информацию спасибо. С какой версии это только я так и не понял...
Как-то не вдохновило:
В идеале хотелось бы иметь возможность добавлять не только методы но и свойства, тогда появился бы мощный механизм внесения функционала в совершенно разные классы без их изменения и применения наследования.
Такое подозрение, что если этим начнут пользоваться направо и налево (а, вероятно, начнут), программы, написанные на Delphi, читать станет невозможно.
Я имел ввиду методы friend, которые надо явно объявлять в классе, а не "подмешивания".
Например, есть коллекция сущностей. Коллекция их загружает/сохраняет.
Некоторые поля сущности - только для чтения.
Но коллекции надо дать доступ к этим полям, чтобы загрузить их из источника.
В сущности объявлен метод коллекции, как friend...
Доступ "ко всему в одном файле" очень не нравится. А делать "в обход" - тоже сложно и заумно.
Но за информацию спасибо. С какой версии это только я так и не понял...
