Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

метод protected в наследнике определить как public?   Найти похожие ветки 

 
Duce ©   (2003-10-14 18:15) [0]

Уважаемые!

Блин, уже просто каша в голове...:((( Ни хрена не могу
сообразить: можно ли метод protected в наследнике определить
как public? Как?


 
Юрий Федоров ©   (2003-10-14 18:16) [1]

без переопределения реализации нельзя
в отличие от св-ва


 
sts ©   (2003-10-14 18:17) [2]

можно.
создать метод с тем же именем приписать в конце overload, в реализации вызвать inherited


 
Duce ©   (2003-10-14 18:20) [3]

А вызов inherited сработает?

Кстати, тут еще все хуже

protected A.func1

B = class(A)

C = class(B)

Можно ли для C как -либо выполнить func1?


 
Игорь Шевченко ©   (2003-10-14 18:21) [4]


> sts © (14.10.03 18:17) [2]
> можно.
> создать метод с тем же именем приписать в конце overload,
> в реализации вызвать inherited


Ы...............................(c) Кин-дза-дза.

Пробовал ?


 
Семен Сорокин ©   (2003-10-14 18:22) [5]

reintroduce?


 
Игорь Шевченко ©   (2003-10-14 18:23) [6]

Duce © (14.10.03 18:20)

Можно.
Создать public метод класса C, который будет вызывать внутри себя protected-метод класса A


 
Duce ©   (2003-10-14 18:24) [7]

Через inherited, yeah?


 
Игорь Шевченко ©   (2003-10-14 18:26) [8]

Семен Сорокин © (14.10.03 18:22)

Use reintroduce when you want to hide an inherited virtual method with a new one.

Я не увидел в объявлении protected-метода слова virtual. Если бы оно было, достаточно было бы просто слова override, переноса его в секцию public и вызова внутри него inherited


 
Игорь Шевченко ©   (2003-10-14 18:28) [9]

Duce © (14.10.03 18:24)


> Через inherited, yeah?


Нет, обычно.


type
A = class
protected
procedure Foo;
end;

C = class (A)
public
procedure Bar;
end;

procedure C.Bar;
begin
Foo;
end;

И где-нибудь
CInstance.Bar()



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

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.062 c
7-89580
wolfic
2003-08-12 17:49
2003.10.27
определение события завершение работы Windows


3-89092
Vemer
2003-10-08 01:05
2003.10.27
Как запретить удаление строк по Ctrl+Del


1-89325
LocalNet
2003-10-16 15:58
2003.10.27
Передача файла в локальной сети


1-89289
Yakudza
2003-10-14 11:26
2003.10.27
Что здесь не правильно ?


1-89308
Ugh
2003-10-16 02:02
2003.10.27
RxRichEdit