Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 296 297 [298] 299 300 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#4458
,
|
|
|
|
|
Сообщ.
#4459
,
|
|
|
|
Цитата Romkin @ Цитата D_KEY @ Вот, кстати, доступ к свой базовой части, в принципе, нормален. К другом объекту, через интерфейс базового - нет. Хе. А нафига тебе приватные поля, к которым нет доступа вообще? Я имел в виду что-то вроде: ![]() ![]() class A { //... private: int x; }; class B : public A { public: int f(A *other) { this->x = 10; // ok other->x = 10; // error } //... }; Но в С++ не так, не бойтесь |
|
Сообщ.
#4460
,
|
|
|
|
Повышение видимости, часто практикуется в VCL и ООП совершенно не противоречит. |
|
Сообщ.
#4461
,
|
|
|
|
|
Сообщ.
#4462
,
|
|
|
|
А ты дальше то посмотри, приват - он на то и приват, что никому ничего не обещает, а здесь если внутренняя логика объекта, а соответственно и способ доступа изменяются - на публичном интерфейсе это никак не отражается. |
|
Сообщ.
#4463
,
|
|
|
|
Цитата korvin @ Цитата (Romkin @ Сегодня, 11:17) Кстати, доступа тут нет. property Caption write FCaption; Просмотрел. За такое часто канделябром. Старый код, это не обращение к привату, а дружественный класс, в пределах модуля. Сейчас секции strict private и вложенные классы, и так не делают. Цитата korvin @ а зачем нужны приватные поля, к которым есть доступ извне? делайте публичное поле Прости, но как ты значение приватного поля менять будешь? Святым духом? Мне кадется, что оно как-то меняется внешним событием, напрямую или опосредованно. |
|
Сообщ.
#4464
,
|
|
|
|
Цитата DesweR @ Повышение видимости часто практикуется в VCL которую теперь выкидывают на помойку. ура Цитата DesweR @ Повышение видимости ООП совершенно не противоречит. о да, истинно-ООП-шный -- скандалы, интриги, расследования,"показать все, что скрыто!" |
|
Сообщ.
#4465
,
|
|
|
|
Цитата korvin @ "показать все, что скрыто!" Скрыто в базовом классе, а не в производном. Если ты с объектом работаешь через интерфейс базового, то все будет скрыто. |
|
Сообщ.
#4466
,
|
|
|
|
Цитата Romkin @ Прости, но как ты значение приватного поля менять будешь? Святым духом? известно как, оно может быть изменено в ходе выполнения какого-то метода. |
|
Сообщ.
#4467
,
|
|
|
|
Цитата korvin @ о да, истинно-ООП-шный -- скандалы, интриги, расследования,"показать все, что скрыто!" Не показать, а дать доступ. Свойства предусматривают именно публичность. То есть если есть свойство, то предполагается, что будет доступ извне, сейчас или в потомках. |
|
Сообщ.
#4468
,
|
|
|
|
Цитата DesweR @ А ты дальше то посмотри, приват - он на то и приват, что никому ничего не обещает что? он обещает, что ни у кого нет доступа к этим данным, кроме методов этого же класса. Добавлено Цитата Romkin @ Не показать, а дать доступ. Свойства предусматривают именно публичность. спецификатор доступа protected предусматривает, что сущность будет доступна только для наследующих классов, для их личных целей. |
|
Сообщ.
#4469
,
|
|
|
|
Цитата korvin @ спецификатор доступа protected предусматривает, что сущность будет доступна только для наследующих классов, для их личных целей. Замечательно. И что? Свойствам можно повышать видимость, этому просто ничего не мешает. Изначально в предке они в привате по причине того, что понизить видимость свойства уже нельзя. |
|
Сообщ.
#4470
,
|
|
|
|
Цитата D_KEY @ Скрыто в базовом классе, а не в производном. Если ты с объектом работаешь через интерфейс базового, то все будет скрыто. так нужно и объявлять _новое свойство_(пусть даже с тем же именем), со своей реализацией, вот за это я не люблю protected -- автор базового класса изменил реализацию protected-свойства/метода и все, наш уже ведет себя не так, как мы планировали, хотя на пользователей базового класса это может и никак не повлиять. |