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

Вниз

private vs protected   Найти похожие ветки 

 
хм ©   (2004-04-29 17:12) [120]

Carthago delena est :)


 
WebErr ©   (2004-04-29 17:15) [121]


>  TWBEClass = class(TSomeClass)
>  protected
>    FA: integer;
>  public
>    property A: integer read FA write FA;
>  end;

TNewWBEClass = class(TWBEClass)
protected
 FA: Integer;
 procedure SetA(Value: Integer);
public
 property A: Integer read FA write SetA;
end;
?
Что-то я совсем не понял суть примера?
И где здесь запихнуть хоть какой-то private?


 
WebErr ©   (2004-04-29 17:16) [122]

Удалено модератором
Примечание: Offtopic


 
Goida ©   (2004-04-29 17:29) [123]


> WebErr


> Что-то я совсем не понял суть примера?

Представь, ты создал этот класс (вариант 1) и наделал кучу потомков. Потом вдруг решил: "Не нуна "procedure SetA(Value: Integer); пользоваться...". Поменял. Теперь у тебя вариант 2. И все работает. Ты счастлив? Если да, тогда бери Джесса Либерти и читай его, а потом продолжай разговаривать о том нужен ли private.
Но если ты не понимаешь, то слушай. У тебя везде было присваивание к FA. Поэтому новый вариант класса утебя не будет работать так, как ты хочешь. Для того, чтобы работал SetA, нужно FA поместить в private...
Уф! Ты ведь должен знать это ?)


 
Anatoly Podgoretsky ©   (2004-04-29 17:43) [124]

TNewWBEClass2 = class(TNewWBEClass)
end;

FA := 1;
И что бы ты не творил в дальнейшем со своим SetA ты приплыл парень, пока не переместишь FA в private


 
Petr V. Abramov ©   (2004-04-29 17:50) [125]

> Для того, чтобы работал SetA, нужно FA поместить в private...
 Для того, чтобы всегда работал именно SetA


 
han_malign ©   (2004-04-29 18:31) [126]

>Секция private должна исчезнуть под влиянием protected.
- дарагой товарисч, а вы никогда не слышали - инкапсуляция, полиморфизм, скрытие/защита реализации?
А может слышали про контроль ошибок на этапе компиляции?


 
Goida ©   (2004-04-30 13:18) [127]

Хм... ВБР тихо ушел...


 
WebErr ©   (2004-04-30 18:34) [128]

Нет, вы не поняли меня, допустим я создал
TBase = class
private
 FA: Integer;
 procedure SetA(Value: Integer);
public
 property A: Integer read FA write SetA;
end;

А потом захотел как-то работать именно с FA а не с A в одном из потомков - единственный выход:
FA - в protected.

И всё!
Плакала ваша теория!

> han_malign ©   (29.04.04 18:31) [126]

Наследование забыл! Гений! :))))
Без сопливых знаю! :)
Знаком я с ООП! Оч хор значом! Заколебало меня уже отвечать на такие выпады, просто меня бесит private секция!!!


 
WebErr ©   (2004-04-30 18:38) [129]

Кстатти, [72] всё ещё ждёт разъяснения:
это предок класса TDynMatrix.
С произвольным буффером.
TDynMatrix порождает T3DGrid, T24BitRaster и TZBuffer.
С любым вариантом private на данном примере это будет завал.
Так как все переменные мне нужны в одном из потомков!
with best wishes... ваш ВБР! :)


 
WebErr ©   (2004-04-30 18:40) [130]


> Anatoly Podgoretsky ©   (29.04.04 17:43) [124]

Может я хочу работать с FA также и в некой другой функции класса наследника!


 
Anatoly Podgoretsky ©   (2004-04-30 20:13) [131]

ХОчешь работать, работай, но карты не передергивай.


 
Petr V. Abramov ©   (2004-05-01 01:42) [132]

> WebErr ©   (30.04.04 18:40) [130]
> Может я хочу
 А вот Ваша задача как проектировщика классов - спроектировать  так, чтобы хотение не возникало. За ненадобностью. И отсутствие возможности работать с FA, даже при хотении, не лишало наследников гибкости.
 А вообще - пишите все в public, если так хочется. Только когда Вас заставят разгребать последствия, не кричите, что у программистов жизнь хреновая.
 А если пишете тихо сам с собой, ну пихайте все в public.
 А вот попадете в перспективную команду Дмитрия О., так он Вас как собаку из пневматики ;)

> просто меня бесит
программируйте в наморднике :)


 
WebErr ©   (2004-05-05 14:42) [133]

Ok, Вы все вместе дружно кто как и кое-как защитили-таки private секцию от поругания! :))))
Вопросов больше не имею... более того, скажу Вам по секрету, я проникся нежными чувствами к данной секции, но использовать её больше чем нужно я просто из рациональности склада моего мозгу не буду! ;)
Спасибо всем, кто принял участие в обсуждении! :)
До нового сабжа! :)


 
WebErr ©   (2004-05-05 14:44) [134]

Всё-таки все настолько привыкли к private секции, что даже не все знают, зачем она конкретно нужна или знают, но объяснить не могут! ;)


 
Digitman ©   (2004-05-05 14:47) [135]


> WebErr ©   (05.05.04 14:44) [134]


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


 
WebErr ©   (2004-05-05 15:44) [136]


> Digitman ©   (05.05.04 14:47) [135]

Кроме Вас, о, Великий Мастер!
Ваши аргументы были самыми убедительными! :))))


 
Digitman ©   (2004-05-05 15:56) [137]


> WebErr ©   (05.05.04 15:44) [136]


не сомневаюсь ни секунды
тем более заметен оппонирующий мне "бронепоезд"


 
Goida ©   (2004-05-05 16:15) [138]


> WebErr ©   (05.05.04 14:44) [134]
> Всё-таки все настолько привыкли к private секции, что даже
> не все знают, зачем она конкретно нужна или знают, но объяснить
> не могут! ;)

Ну, а для чего она нужна? Конкретно?


 
MalkoLinge ©   (2004-05-05 16:49) [139]


> Ну, а для чего она нужна? Конкретно?

Ну чиста по понятиям, прикинь ты подогнал мне свой класец, ну как без распальцовки мне втереть что там можно крошить а что впадлу ? и еще чтобы я к тебе порамсовать не смог ? Вот для этого и нужен private


 
Goida ©   (2004-05-05 16:52) [140]


> MalkoLinge

Я это и без тебя знаю :) Я у WebErr спрашиваю, только он мне не ответит уже... наверно...


 
malkolinge ©   (2004-05-05 18:22) [141]

Я это ему тоже адресовал :)


 
WebErr ©   (2004-05-06 17:43) [142]


> Goida ©   (05.05.04 16:52) [140]

Извращенцы, полюбившие защищать данные от левых классов и посредственных пользователей, (которые просто сделали вид, что защитились!) любят теперь "защищаться" и от собратьев по программированию, которые настолько полюбили ООП, что уже даже создают потомков от наилюбимейших Ваших Классов - вот от "защиты" от такого "беспредела" и нужна private фикция. :)


 
WebErr ©   (2004-05-06 17:44) [143]


> malkolinge ©   (05.05.04 18:22) [141]

Не вижу... где?
Хоть бы номер поста сказали... :)


 
WebErr ©   (2004-05-06 17:45) [144]

Удалено модератором
Примечание: Offtopic



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

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

Наверх




Память: 0.78 MB
Время: 0.046 c
1-1084281702
SashaNevid
2004-05-11 17:21
2004.05.23
в caption верхние и нижние индексы?


14-1083154220
csr
2004-04-28 16:10
2004.05.23
Thread creation error


1-1083852642
Zed
2004-05-06 18:10
2004.05.23
Проблема с поиском DCU-файлов


4-1080740688
xtz
2004-03-31 17:44
2004.05.23
Ув мастера как по PId узнать скока памяти занимает процесс


9-1071948524
G A M E R
2003-12-20 22:28
2004.05.23
Оцените новую версию МЯСОПОВАЛА