Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Исходники Delphi / 5 сообщений из 5, страница 1 из 1
11.12.2002, 15:51
    #32078568
Ромыч
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исходники Delphi
Как TADOConnection в процедуре ExecuteComplete может вызывать метод OpenCursorComplete объекта TDataSet, если этот метод объявлен как protected и TADOConnection не является наследником TDataSet.
Модули ADODB и DB.
...
Рейтинг: 0 / 0
11.12.2002, 16:21
    #32078592
Cancer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исходники Delphi
А эти классы не в одном модуле находятся?
...
Рейтинг: 0 / 0
11.12.2002, 16:43
    #32078615
Ромыч
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исходники Delphi
Вот что я выяснил:
методы protected доступны наследникам класса, в котором были объявлены или всем классам, объявленным в том же модуле.
TDataSet в модуле DB объявляет protected метод OpenCursorComplete.
В модуле ADODB объявляется наследник TCustomADODataSet = class(TDataSet), который тем не менее не переобъявляет метод OpenCursorComplete как public. Но из-за того что TCustomADODataSet и TADOConnection объявлены в одном модуле, TADOConnection автоматически получает доступ к protected методам TCustomADODataSet/TDataSet.
...
Рейтинг: 0 / 0
11.12.2002, 16:56
    #32078631
Cancer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исходники Delphi
>методы protected доступны наследникам класса, в котором были объявлены >или всем классам, объявленным в том же модуле

Во-во! Я про тоже. Еще круче - методы private одного класса доступны во всех классах этого модуля!
Перемудрили в OPascal в пространствами имен
...
Рейтинг: 0 / 0
15.12.2002, 09:40
    #32079221
FAGIM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исходники Delphi
А в чем мудрость, помоему ясно.
Насколько понимаю в С++ фигурирует понятие "дружественного класса", в паскале же это понятие реализовано в другой форме.
Раз в ОПаскале чисто модульная архитектура (предполагается, что отдельный класс или семейство в отдельном модуле), то и модуль - не просто контейнер кода, но и определяет некоторые права, в частности все классы, описанные в одном модуле - "дружественные", - это хорошо для этом устойчивых классов - реализуется более эффективное взаимодействие, правда за счет очень высокой степени связанности
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Исходники Delphi / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]