На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 296 297 [298] 299 300 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата Romkin @
    А что, методы в потомках в паблик не перемещают?

    нет.
      Цитата Romkin @
      Хе. А нафига тебе приватные поля, к которым нет доступа вообще?

      +1
        Цитата Romkin @
        Хе. А нафига тебе приватные поля, к которым нет доступа вообще?

        Чтобы были. :)
          Цитата Romkin @
          Цитата D_KEY @
          Вот, кстати, доступ к свой базовой части, в принципе, нормален. К другом объекту, через интерфейс базового - нет.

          Хе. А нафига тебе приватные поля, к которым нет доступа вообще?

          Я имел в виду что-то вроде:
          ExpandedWrap disabled
            class A
            {
            //...
             
            private:
               int x;
            };
             
            class B : public A
            {
            public:
                int f(A *other)
                {
                    this->x = 10; // ok
                    other->x = 10; // error
                }
             
            //...
             
            };

          Но в С++ не так, не бойтесь :)
          Сообщение отредактировано: D_KEY -
            Цитата korvin @
            здорово, вот так взяли и изменили область видимости свойств базового класса.

            Повышение видимости, часто практикуется в VCL и ООП совершенно не противоречит.
              Цитата Romkin @
              Кстати, доступа тут нет.

              ExpandedWrap disabled
                property Caption write FCaption;


              Добавлено
              Цитата Romkin @
              Хе. А нафига тебе приватные поля, к которым нет доступа вообще?

              а зачем нужны приватные поля, к которым есть доступ извне? делайте публичное поле
                Цитата korvin @
                доступ к приватному полю базового класса тоже доставляет, да...

                А ты дальше то посмотри, приват - он на то и приват, что никому ничего не обещает, а здесь если внутренняя логика объекта, а соответственно и способ доступа изменяются - на публичном интерфейсе это никак не отражается.
                Сообщение отредактировано: DesweR -
                  Цитата korvin @
                  Цитата (Romkin @ Сегодня, 11:17)
                  Кстати, доступа тут нет.


                  property Caption write FCaption;

                  Просмотрел. За такое часто канделябром. Старый код, это не обращение к привату, а дружественный класс, в пределах модуля. Сейчас секции strict private и вложенные классы, и так не делают.
                  Цитата korvin @
                  а зачем нужны приватные поля, к которым есть доступ извне? делайте публичное поле

                  Прости, но как ты значение приватного поля менять будешь? Святым духом? Мне кадется, что оно как-то меняется внешним событием, напрямую или опосредованно.
                    Цитата DesweR @
                    Повышение видимости часто практикуется в VCL

                    которую теперь выкидывают на помойку. ура

                    Цитата DesweR @
                    Повышение видимости ООП совершенно не противоречит.

                    о да, истинно-ООП-шный -- скандалы, интриги, расследования,"показать все, что скрыто!"
                      Цитата korvin @
                      "показать все, что скрыто!"

                      Скрыто в базовом классе, а не в производном. Если ты с объектом работаешь через интерфейс базового, то все будет скрыто.
                        Цитата Romkin @
                        Прости, но как ты значение приватного поля менять будешь? Святым духом?

                        известно как, оно может быть изменено в ходе выполнения какого-то метода.
                          Цитата korvin @
                          о да, истинно-ООП-шный -- скандалы, интриги, расследования,"показать все, что скрыто!"

                          Не показать, а дать доступ. Свойства предусматривают именно публичность. То есть если есть свойство, то предполагается, что будет доступ извне, сейчас или в потомках.
                            Цитата DesweR @
                            А ты дальше то посмотри, приват - он на то и приват, что никому ничего не обещает

                            что? он обещает, что ни у кого нет доступа к этим данным, кроме методов этого же класса.

                            Добавлено
                            Цитата Romkin @
                            Не показать, а дать доступ. Свойства предусматривают именно публичность.

                            спецификатор доступа protected предусматривает, что сущность будет доступна только для наследующих классов, для их личных целей.
                              Цитата korvin @
                              спецификатор доступа protected предусматривает, что сущность будет доступна только для наследующих классов, для их личных целей.

                              Замечательно. И что? Свойствам можно повышать видимость, этому просто ничего не мешает. Изначально в предке они в привате по причине того, что понизить видимость свойства уже нельзя.
                                Цитата D_KEY @
                                Скрыто в базовом классе, а не в производном. Если ты с объектом работаешь через интерфейс базового, то все будет скрыто.

                                так нужно и объявлять _новое свойство_(пусть даже с тем же именем), со своей реализацией, вот за это я не люблю protected -- автор базового класса изменил реализацию protected-свойства/метода и все, наш уже ведет себя не так, как мы планировали, хотя на пользователей базового класса это может и никак не повлиять.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 296 297 [298] 299 300 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.4205 ]   [ 14 queries used ]   [ Generated: 1.08.26, 04:38 GMT ]