Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];

Вниз

Потомки и родители   Найти похожие ветки 

 
Yaro   (2002-09-01 07:49) [0]

Как зделать, чтобы потомок моего класса не видел некоторые методы родителя моего класса?


 
Юрий Зотов   (2002-09-01 11:01) [1]

Сделать их приватными (sorry за тривиальный ответ, но что тут еще ответишь?).

Либо пересмотреть структуру классов - вводить нужные методы там, где они должны появляться, не раньше.


 
Anatoly Podgoretsky   (2002-09-01 11:20) [2]

В дополнение, потомок и предок должны находиться в отдельных модулях


 
Yaro   (2002-09-01 19:50) [3]

Anatoly Podgoretsky -> Это я в курсе, но вот "Сделать их приватными" (с override), как посоветовал Юрий Зотов, не получается... метод не скрывается! Его все-равно видно!


 
Юрий Зотов   (2002-09-01 20:16) [4]

"Сделать их приватными" и "с override" - это совершенно разные вещи. Извините, но ТАКОЕ я не советовал. Даже после ведра водки ТАКОЕ посоветовать не могу (потому что после ведра водки я уже вообще ничего не могу, даже советовать).

Сделать их приватными - это значит перенести в секцию private. После этого overide теряет всякий смысл. Даже компилятор - и тот ругается.

А вот "пересмотреть структуру классов" - это, похоже, подойдет. Вот только узнать бы суть - о чем, собственно, речь? Простыми русскими словами, если можно. И хоть маленький кусочек объявления классов.


 
Набережных С.   (2002-09-01 20:48) [5]


> Yaro © (01.09.02 19:50)

> Сделать их приватными" (с override)-это круто!
Подозреваю, что ты пытаешься понизить область видимости методов.
Если получится, то Borland будет сильно удивлен. Очень сильно.


 
Yaro   (2002-09-01 23:03) [6]

TClass1 = class
public
function DoIt: boolean;
end;

TClass2 = class(TClass1)
public
function DoIt: boolean; override;
end;

TClass3 = class(TClass2)
{ЧТО ПИСАТЬ???}
end;

var V: TClass3;

...

v.DoIt - хочу, чтоб ее небыло!!!!!
хочу поменять видимость вункции, без внесения изменений в C1 и C2


 
Криворукий   (2002-09-01 23:12) [7]

Нельзя так сделать. То есть абсолютно.


 
Anatoly Podgoretsky   (2002-09-01 23:13) [8]

Набережных С. (01.09.02 20:48)
Телепат однако


 
Юрий Зотов   (2002-09-01 23:50) [9]

1. В TClass1 пропущено virtual (или dynamic). Либо в TClass2 надо убрать override.

2. Поменять видимость без внесения изменений - не получится. Самолеты не плавают, а пароходы не летают. Так уж они сделаны - и мы же этому не удивляемся, верно?

Вот и Delphi тоже сделана так, как ее сделали, а не так как нам хочется. Видимость в Delphi не понижается, ее можно только повысить. Почему - это уже вопрос к Borland. Но они сделали именно так и честно написали об этом в документации.

3. А вот с внесением изменений - нет проблем. Например, делаем DoIt статическим, переносим в private и выносим TClass3 в отдельный модуль.


 
Набережных С.   (2002-09-02 16:10) [10]


> Anatoly Podgoretsky © (01.09.02 23:13)
> Набережных С. (01.09.02 20:48)
> Телепат однако

Не, просто выпимши был:)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
1-35753
Mr. Faga
2002-08-30 16:53
2002.09.12
Delphi 7


1-35633
Strela
2002-08-30 01:18
2002.09.12
Динамическое создание объекта


3-35589
maxim2
2002-08-20 12:07
2002.09.12
Можно ли поместить ссылку или email в ячейку DBGrid


1-35739
PTE
2002-08-30 10:46
2002.09.12
FormShow как обработать событие


14-35895
AL2002
2002-08-16 10:41
2002.09.12
Можно создать ЕХЕ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский