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

    Да, но это уже приведение типов. А мы рассуждаем об элементарных примерах. Когда в функцию передаётся объект того же типа, что и параметр, например. Или из той же иерархии (см. мой пример несколько страниц назад).

    Добавлено
    Цитата KILLER @
    А как можно что то программировать и незнать как оно работает? :blink:

    Ну вот и я про то же :)
    Цитата KILLER @
    Заметь, никакого кода я не курю, да зачастую его попросту и нет, и оно мне и нафик не нужно, мне достаточно изучить документацию, все.

    Везёт тебе, работаешь исключительно с документированным кодом...
      Цитата IL_Agent @
      Везёт тебе, работаешь исключительно с документированным кодом...

      Ну уж так сложилось, что для того чтобы эффективно работать с тем же STL мне не нужно курить тонны исходного кода, мне достаточно посмотреть описание итератора или какого нибудь алгоритма, в любой книжке или в документации, коей пол инета завалено...
      А стороние SDK, как правило поставляются с документацией, примерами и т.д. А если у тебя нет исходных кодов, что ты тогда делаешь? дизассемблируешь и куришь код, чтобы понять что делает функция? :huh:
        KILLER, причём STL ? Я про то, что наваял твой уволившийся коллега.

        Цитата KILLER @
        А если у тебя нет исходных кодов, что ты тогда делаешь? дизассемблируешь и куришь код, чтобы понять что делает функция? :huh:

        Если нет ни исходников, ни доков, ни примеров использования, то библиотеку вряд ли получится применить.
          Цитата IL_Agent @
          KILLER, причём STL ? Я про то, что наваял твой уволившийся коллега.

          Как причем, ты ведь сделал акцент на том, что D_KEY, так прозрачно работает с iterator потому как знает как он работает, но ведь при этом он не курил код STL, да и для разных ОС, они могут различаться...
          А про то, что наваял мой уволившийся коллега, ну так у нас принято писать коментарии, а если это код с которым я работаю, то причем тут язык? Будь то С++, С#, Delphi, ты в любом случае будешь читать код, если непосредственно в нем будешь делать изменения, или как с закрытыми глазами их делать?

          Цитата IL_Agent @
          Если нет ни исходников, ни доков, ни примеров использования, то библиотеку вряд ли получится применить.

          Ну вот, так причем тут kk / = ? еще и в С++, чем шарп тут круче? Тебе ведь тоже придется читать или доку или курить сырцы...
            Цитата korvin @
            Цитата D_KEY @
            А почему это не может быть метод?

            делать оператор присваивания методом -- весьма идиотская затея

            Весьма идиотская мысль, если речь идет о языке с семантикой значений.

            Цитата
            необходимости в этом быть в принципе не должно. само добавление оператора присваивания в язык сильно усложняет семантику языка, но это почти всегда оправданная цена, но введение возможности перегрузить его -- это не менее сильное усложнение сверх того, при этом не несущее никакой практической пользы.

            И на чем же основана эта экспертная оценка?

            Добавлено
            Цитата IL_Agent @
            Я предлагая пример

            Ты не пример показываешь, а код, который может написать лишь человек, не знающий языка. Можно ответить и в твоем духе: "никаких проблем с этим не возникает". Так больше нравится?
            Но мы говорим о логике. Если неявное деление по видам типов в одном языке усложняет систему типов и делит ее на две слабосвязанные части, то то, что описываешь ты никакой логики и никаких принципов не нарушает.

            Цитата
            Цитата D_KEY @
            Я используют тип std::vector<int>::iterator совершенно свободно. А класс он или указатель или еще что-то меня не касается - этот выбор остается за автором.

            Ты используешь его совершенно свободно, потому что знаешь, как он себя поведёт в тех случаях, когда ты его используешь. Я тоже использую совершенно свободно всё, что знаю.
            Замечательно. Но ты так и не ответил, зачем в языке нужно поддерживать две семантики и ссылочную и значений, когда достаточно одной?

            Цитата
            Цитата D_KEY @
            В случае ссылок это действительно не метод, но ведь в шарпе есть и типы-значения?

            И с ними он тоже ведёт себя однозначно.
            И как же? Присваивает все поля? А как же инкапсуляция?
              Цитата D_KEY @
              И как же? Присваивает все поля? А как же инкапсуляция?

              Да какая там инкапсуляция в языке, где рефлексией можно добраться до любых потрохов...
              Сообщение отредактировано: MyNameIsIgor -
                Цитата D_KEY @
                Можно ответить и в твоем духе: "никаких проблем с этим не возникает". Так больше нравится?

                По сути, мне так и отвечают.
                Цитата D_KEY @
                Ты не пример показываешь, а код, который может написать лишь человек, не знающий языка.

                Нет, могла иметь место опечатка. Пойди, отлови её потом в рантайме. А будь пример посложнее и програмист чуть менее опытный - хрен найдёшь.
                Цитата D_KEY @
                Если неявное деление по видам типов в одном языке усложняет систему типов и делит ее на две слабосвязанные части, то то, что описываешь ты никакой логики и никаких принципов не нарушает.

                Деление вполне явное. И принципы, установленные данном языке - не нарушает.
                Цитата D_KEY @
                Но ты так и не ответил, зачем в языке нужно поддерживать две семантики и ссылочную и значений, когда достаточно одной?

                Я тебе ответил, где это используется. Возможно ли от этого отказаться ? Не знаю, возможно, как раз-таки и буду нарушены какие-либо принципы.
                Цитата D_KEY @
                И как же? Присваивает все поля? А как же инкапсуляция?

                Чем это хуже кк по умолчанию в плане инкапсуляции ?

                Добавлено
                Цитата MyNameIsIgor @
                Да какая там инкапсуляция в языке, где рефлексией можно добраться до любых потрохов...

                Рефлексия работает с метаданными как объектами, по всем правилам инкапсуляции. А вот в С++ инкапсуляция убивается приведением типов :)
                  Цитата IL_Agent @
                  Рефлексия работает с метаданными как объектами, по всем правилам инкапсуляции.

                  Т.е. добраться до приватных полей - это "по всем правилам инкапсуляции"? Ну-ну...
                  Цитата IL_Agent @
                  А вот в С++ инкапсуляция убивается приведением типов

                  Это что-то новенькое...
                    Цитата KILLER @
                    А стороние SDK, как правило поставляются с документацией, примерами и т.д. А если у тебя нет исходных кодов, что ты тогда делаешь? дизассемблируешь и куришь код, чтобы понять что делает функция?

                    Либо документация, либо исходный код. Лучше всего и то и другое. Никто код не вкуривает, читаешь документацию. Там написано для каждого имени, что это - класс, запись, функция... Поскольку правила использования просты, то все сразу понятно. При отсутствии исходного кода проблемой может быть глючность библиотеки или неполнота документации (бывает, некоторые тонкости реализации не описаны). Код сторонних библиотек в поставке, кстати, как правило отсутствует.
                      Цитата MyNameIsIgor @
                      Т.е. добраться до приватных полей - это "по всем правилам инкапсуляции"? Ну-ну...

                      Есть код. А есть ещё код, работающий с первым как с данными. Оба - на одном языке, в обоих - инкапсуляция. Но второй код может модифицировать поведение первого. Метапрограммирование не противоречит инкапсуляции.
                      Цитата MyNameIsIgor @
                      Это что-то новенькое...

                      Не притворяйся, что не понимаешь ;)
                      Сообщение отредактировано: IL_Agent -
                        Цитата Romkin @
                        Либо документация, либо исходный код. Лучше всего и то и другое. Никто код не вкуривает, читаешь документацию. Там написано для каждого имени, что это - класс, запись, функция... Поскольку правила использования просты, то все сразу понятно. При отсутствии исходного кода проблемой может быть глючность библиотеки или неполнота документации (бывает, некоторые тонкости реализации не описаны). Код сторонних библиотек в поставке, кстати, как правило отсутствует.

                        Я об этом и говорю, просто тут некоторые говорят, что в С++ обязательно нужно смотреть код конструктора копии и operator =, чтобы понять как работает присваивание :-?
                          Цитата IL_Agent @
                          Не притворяйся, что не понимаешь

                          Притворяться - это вот это
                          Цитата IL_Agent @
                          Есть код. А есть ещё код, работающий с первым как с данными. Оба - на одном языке, в обоих - инкапсуляция. Но второй код может модифицировать поведение первого. Метапрограммирование не противоречит инкапсуляции.

                          А вот что вы там опять фантазируете про плюсы, я абсолютно без понятия.
                          Сообщение отредактировано: MyNameIsIgor -
                            Цитата KILLER @
                            просто тут некоторые говорят, что в С++ обязательно нужно смотреть код конструктора копии и operator =, чтобы понять как работает присваивание

                            Ну да, либо курить документацию, в которой это описано :lol:
                              Цитата Romkin @
                              Ну да, либо курить документацию, в которой это описано

                              Зачем? Зачем мне курить код, если допустим есть дока? Вообще о чем спор идет? О том, что если имеем функцию Foo, и понятия не имеем что она делает, а доки к ней нема, то чтобы понять что она делает - нужно посмотреть ее исходный код? Ну дык, тут и капитан очевидность отдыхает... Я не пойму причем тут С++, или это только в С++ такое, и в делфи/шарпе/др. яп можно свободно юзать функцию, не имея представления что она вообще творит? :wacko:
                                Господа, я не могу понять: а зачем вам видеть код конструктора копирования и оператора присваивания? Для чего? Они либо есть, либо их нет...
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 198 199 [200] 201 202 ...  494 495


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