Ada_Ru форум

Обсуждение языка Ада

Доступ к полям записи.

Оставить новое сообщение

Сообщения

Alexey Veselovsky
Доступ к полям записи.
2008-06-18 12:58:54

Вопрос такой вот возник. В С++/Java/C#/Delphi/Oberon есть возможность часть полей записи (класса/структуры -- не важно) сделать публичными а часть сделать приватными (или протектедными) не используя для этого трюков с наследованием. Возможно ли это в Аде?

On Wed, 18 Jun 2008 16:58:54 +0400, you wrote:

 

Вопрос такой вот возник. В С++/Java/C#/Delphi/Oberon есть возможность часть полей записи (класса/структуры -- не важно) сделать публичными а часть сделать приватными (или протектедными) не используя для этого трюков с наследованием. Возможно ли это в Аде?

 

В каком смысле трюков? Видимость членов непосредственно связана с наследованием, поскольку члены - предмет наследования. Даже, если как в С, где наследования нет, формально, структура всегда наследует некоему абстрактному неназванному интерфейсу записи, который обладает свойством иметь именованные компоненты. Далее при декларации структуры она

"наследует" этом интерфейсу. Компоненты добавляются и как любой метод (здесь это - пара getter/setter) и по-ходу делаются, или видимыми, или нет.

За один шаг наследования в Аде нельзя добавить одновременно и публичные, и приватные пары getter/setter:

 

type S is new T and private with record -- Это не Ада!

A : Foo;

end record;

private

type S is new T and record

A : Boo;

with record

B : Foo;

end record;

 

("and private" - приватный интерфейс)

 

Но это не очень критично, т.к. можно с тем же результатом:

 

type S_Public is abstract new T with record -- Это Ада!

A : Foo;

end record;

type S is new S_Public with private;

private

type S is new S_Public with record

B : Boo;

end record;

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

sve

интересно, заведется ли gnat для .net в Mono?

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти