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

    они достались в наследство от TP/BP
    только всё наоборот, галку надо ставить, чтобы присвоения допускались... мамой кылянусь...

    обычные константы, это просто поименованные числа, например...
    типизированные же хранятся в секции данных(и никогда в стеке), и к ним можно получить доступ в run-time, адрес например получить
    поэтому возможен такой финт:
    ExpandedWrap disabled
      {$WRITEABLECONST ON}
      procedure test;
      const
        c:byte = 0;
      begin
        writeln(c);
        inc(c);
      end;
      ...
      begin
        test; // выведет 0
        test; // выведет 1
      end;

    иногда(очень редко) это может быть удобно
    кроме того, директива {$WRITEABLECONST ON} имеет локальную область действия
    т.е. в каком-то участке кода эту константу присваивать можно, а в каком-то нет...
    очень похоже на ваш const :)
      Цитата Shaggy @
      иногда(очень редко) это может быть удобно
      кроме того, директива {$WRITEABLECONST ON} имеет локальную область действия
      т.е. в каком-то участке кода эту константу присваивать можно, а в каком-то нет...

      Странные какие-то константы, тебе не кажется?

      Цитата
      очень похоже на ваш const :)

      :blink: У нас нельзя изменять const.
      Не путай. Ты можешь сказать ссылке, что она указывает на константный объект и передать ей как действительно константный объект, так и обычный. Но не наоборот(нельзя сказать ссылке, что она указывает на неконстантный объект, а передать ей константный).
      И сколько можно объяснять...
      Сообщение отредактировано: D_KEY -
        Цитата D_KEY @
        :blink: У нас нельзя изменять const.

        ты можешь написать const, а можешь и не написать
        {$WRITEABLECONST OFF} {$WRITEABLECONST ON}
          Цитата Shaggy @
          Цитата D_KEY @
          :blink: У нас нельзя изменять const.

          ты можешь написать const, а можешь и не написать

          Эээ. Ну да. Я могу сделать константу или не сделать константу. Причем тут твои директивы?
            Возвращаясь к теме интерфейсов.
            Как я заметил, MyNameIsIgor написал реализацию интерфейсов без наследования от базового класса, ну что же, от необходимой писанины понижения видимости "лишних" методов вы избавились, но за это расплачиваетесь полным отсутствием гарантий выполнения контракта.

            меняем
            ExpandedWrap disabled
              interface read_only
              {
                read_only(const read_only&);
                const read_only& operator= (const read_only&);
              public:
                read_only() {}
                virtual int get_x() const = 0;
                virtual std::string get_y() const = 0;
                virtual ~read_only() {}
              };

            на
            ExpandedWrap disabled
              interface read_only
              {
                read_only(const read_only&);
                const read_only& operator= (const read_only&);
              public:
                read_only() {}
                virtual int SOME_x() const = 0;
                virtual std::string SOME_y() const = 0;
                virtual ~read_only() {}
              };

            Всё замечательно компилируется.
              DesweR, а тот мой небольшой набросок на тему видел? Что в нем не так? Или я все-таки не совсем тебя понял?
                Цитата D_KEY @
                DesweR, а тот мой небольшой набросок на тему видел?

                Те же недостатки, что и у MyNameIsIgor.
                  Цитата DesweR @
                  Цитата D_KEY @
                  DesweR, а тот мой небольшой набросок на тему видел?

                  Те же недостатки, что и у MyNameIsIgor.

                  Пример, пожалуйста.
                    Цитата D_KEY @
                    Пример, пожалуйста.

                    Delphi vs C++ vs C# (сообщение #2815427)
                      Цитата D_KEY @
                      ExpandedWrap disabled
                        class ISomeClass
                        {
                        public:
                            virtual void SetY(int y) = 0;
                         
                        protected:
                            ~ISomeClass();
                        };
                         
                        class TSomeClass : public ISomeClass
                        {
                        public:
                            int GetX() const;
                            void SetX(int x);
                         
                            int GetY() const;
                            /*override*/ void SetY(int y);
                         
                        //...
                        };
                         
                        void client1(const TSomeClass &obj)
                        {
                            // не можем изменить состояние obj
                        }
                         
                        void client2(ISomeClass &obj)
                        {
                            // можем вызывать только obj.SetY(some_value)
                        }

                      Еще раз, что мне на что нужно поменять, чтобы мой вариант стал некорректным?
                        Цитата D_KEY @
                        Эээ. Ну да. Я могу сделать константу или не сделать константу. Причем тут твои директивы?
                        D_KEY, ну так и мы можем применить const_cast<>, а можем и нет. ;)
                          Цитата Qraizer @
                          Цитата D_KEY @
                          Эээ. Ну да. Я могу сделать константу или не сделать константу. Причем тут твои директивы?
                          D_KEY, ну так и мы можем применить const_cast<>, а можем и нет. ;)

                          Да, но вообще-то, применив его к настоящей константе, мы получим UB, разве нет?
                          Если мне не изменяет память, const_cast появился в языке раньше механизма mutable, как раз для решения тех же вопросов, а не для того, чтобы менять значения констант. Это все-таки не тоже самое, что {$WRITEABLECONST ON}.
                            Цитата DesweR @
                            Как я заметил, MyNameIsIgor написал реализацию интерфейсов без наследования от базового класса, ну что же, от необходимой писанины понижения видимости "лишних" методов вы избавились

                            Я не старался от этого избавиться. Тот код, который запостил Повстанець, лично меня устраивает. Я просто сделал чуть ли не построчный перевод дельфи в плюсы.
                            Цитата DesweR @
                            но за это расплачиваетесь полным отсутствием гарантий выполнения контракта.

                            Ээээ... Какого контракта? :blink:
                            Цитата DesweR @
                            меняем
                            ...
                            на
                            ...
                            Всё замечательно компилируется.

                            Это шутка такая? Так мне смешно, ага.

                            Добавлено
                            Кстати, ещё немного на вентилятор :)
                              Цитата MyNameIsIgor @
                              Кстати, ещё немного на вентилятор


                              Она бесплатна, как и Delphi. - :lool: Вот это - плюс! А вообще - не такое уж и на вентилятор, вполне себе нормальная точка зрения. Хорошо что автор понимает, что
                              Цитата
                              Многое из того что давным-давно есть в Delphi совсем недавно стало появляться...

                              Видать значит не так плох тот Дельфи, правда? ;)
                                Цитата --Ins-- @
                                Видать значит не так плох тот Дельфи, правда?

                                Это был, скорее, реверанс-ностальгия, не более :) Вообще всё новое - хорошо забытое старое. Всё это где-то уже было.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 60 61 [62] 63 64 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.1537 ]   [ 14 queries used ]   [ Generated: 29.07.26, 13:55 GMT ]