![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| rodnover |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
По идее, класс TB наследуется от TA, следовательно он должен иметь доступ к protected методам родителя. Почему в таком случае delphi запрещает это делать (и с чем это связан этот запрет) и как можно обойти это ограничение? |
||||
|
|||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
Frees, не, не то. Мне именно поля Owner надо вызвать, а не Self. Я хочу декоратор сделать, но не хочу объявлять некоторые protected методы как public.
Это сообщение отредактировал(а) rodnover - 29.8.2011, 12:12 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Ты можешь обратиться к своей protected функции. но не к protected функции другого объекта, даже, если технически он ссылается на тебя.
|
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
Придется открывать. Плохо.
|
|||
|
||||
| sCreator |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 20.8.2009 Где: Московская област ь Репутация: 2 Всего: 5 |
Сделай маленький хак
|
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
sCreator,
? Это сообщение отредактировал(а) superVad - 29.8.2011, 20:56 |
|||
|
||||
| sCreator |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 20.8.2009 Где: Московская област ь Репутация: 2 Всего: 5 |
||||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
sCreator, завтра попробую. Крутой хак!! Идея отличная, конечно. Спасибо!
|
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
||||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
||||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
Это значит ты гдето ошибся в проектировании классов. и это тоже признак ошибок проектирования Это сообщение отредактировал(а) Frees - 30.8.2011, 07:48 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
А как тогда сделать в Делфи 2 дружественных класса не помещая их в одном модуле?
|
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
спроектировать по другому, что бы такого желания не возникало - единственно правильный способ -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
Соглашусь на половину (чуть больше половины). Чем мне нравятся дружественные классы в С++, что класс сам определяет какие классы будут ему дружественными, в отличии от хака предложенного выше.
Это верный но способ, не не факт, что единственно правильный. ;) Всё-таки иногда считаю, что группа классов должна работать как единое целое (с точки зрения экономии строчек кода и повышения производительности). Это сообщение отредактировал(а) rodnover - 30.8.2011, 12:44 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |