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


    Копировать по значению может еще предпочел бы?
      Кстати, const появился в С именно с подачи Страуструпа и его обсуждений с Ритчи.

      Добавлено
      Цитата --Ins-- @
      Копировать по значению может еще предпочел бы?

      Копировать что, где и зачем :) ?
      Надо копировать - копируй, не надо - не копируй :lol:
        Цитата D_KEY @
        Копировать что, где и зачем ?


        При передаче в метод
          Цитата --Ins-- @
          При передаче в метод

          Для примитивных типов так и делают(т.к. это эффективнее). А для пользовательских-то зачем? Как раз const меня от этого избавляет:
          ExpandedWrap disabled
            void foo(const MyType &my_object)
            {
                // Здесь я не буду изменять my_object
                // А если попытаюсь вызывать у него методы, изменяющие состояние,
                // то компилятор будет ругаться
            }

          Таким образом я могу работать с объектом, не изменяя его состояния и без всякого копирования. Если нужна именно копия, то можно передать и по значению.
          Сообщение отредактировано: D_KEY -
            Цитата D_KEY @
            Для примитивных типов так и делают(т.к. это эффективнее). А для пользовательских-то зачем?


            А для пользовательских как?
              Я же показал как - передачем ссылку на константный объект. Так же можно делать и для примитивных типов.
                Цитата D_KEY @
                Я же показал как - передачем ссылку на константный объект. Так же можно делать и для примитивных типов.


                Подожди, я подзабыл с++ (да и не знал особо), как передается объект если const не писать? По значению?
                  Цитата --Ins-- @
                  как передается объект если const не писать? По значению?

                  :facepalm: Неконстантным он передаётся. Само слово const как бэ намекает, что оно относится к мутабельноси/иммутабельности, а не к способу передачи.
                    Цитата MyNameIsIgor @
                    Неконстантным он передаётся.


                    Я не знаю с++ и не обязан знать, так что твой фейспалм неуместен. Меня сейчас константность не интересует. Я спросил, он передается по значению, т.е. в стек помещается копия объекта, или по ссылке?
                    Сообщение отредактировано: --Ins-- -
                      Цитата --Ins-- @
                      Я спросил, он передается по значению, т.е. в стек помещается копия объекта, или по ссылке?

                      Цитата MyNameIsIgor @
                      Само слово const как бэ намекает, что оно относится к мутабельноси/иммутабельности, а не к способу передачи
                        Цитата --Ins-- @
                        Я спросил, он передается по значению, т.е. в стек помещается копия объекта, или по ссылке?

                        Как скажешь - так и будет :-?
                        ExpandedWrap disabled
                          // по значению(копия)
                          void foo(MyType a);
                          // по значению(копия), при этом не даст изменять копию
                          void foo(const MyType b);
                          // по ссылке на изменяемый объект
                          void foo(MyType & c);
                          // по ссылке на константный объект
                          void foo(const MyType & d);
                          // "перенос" данных(работает для временных объектов или для обычных через явный std::move)
                          void foo(MyType && e);
                          MyNameIsIgor, третий раз русским по белому: меня слово const вообще не интересует. Я спрашиваю, как передается объект?
                            При чем это все никак не зависит от того, пользовательский тип или встроенный.
                              Цитата D_KEY @
                              Как скажешь - так и будет


                              Вот это я и хотел услышать
                                Цитата --Ins-- @
                                меня слово const вообще не интересует

                                Да-да, я вижу :jokingly:
                                Цитата --Ins-- @
                                как передается объект если const не писать?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 449 450 [451] 452 453 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.5600 ]   [ 15 queries used ]   [ Generated: 29.07.26, 07:34 GMT ]