Форум: "Основная";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Внизметод 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c