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

    Почему? В данном случае - что IL_Agent хотел, то и получил.
      korvin, обоснуй.
        Цитата korvin @
        это некорректный язык. и как после этого можно C++ называть объектно-ориентированным?

        А то, что вы предложение начинаете с маленькой буквы, означает, что русский - некорректный язык?
        IL_Agent получил результат на уровень своих знаний - вот и всё.
          Цитата Qraizer @
          korvin, обоснуй.

          ООП -- это позднее связывание и никаких приведений типа (они там не нужны).
          в C++ же мы тут наблюдаем обычное процедурное программирование на структурах несмотря на наличие слова class в коде. на лицо очередное несоответствие общепринятых терминов и их реализации в C++
            Цитата korvin @
            ООП -- это позднее связывание и никаких приведений типа (они там не нужны).
            в C++ же мы тут наблюдаем обычное процедурное программирование на структурах несмотря на наличие слова class в коде. на лицо очередное несоответствие общепринятых терминов и их реализации в C++

            Представьте себе, что не все молятся на г. Алана Кея и не все согласны с тем, что именно вышеупомянутый товарищ изобрёл ООП, как бы сильно он не старался приписать себе эту заслугу.
            Многие помнят, что первым ОО языком была Simula. И ваши имевшее место выкрики "в ООП нет классов" противоречат первоисточнику.
              Цитата MyNameIsIgor @
              Многие помнят, что первым ОО языком была Simula.

              о да, очень многие, хоть один из этих многих может предоставить современную реализацию?
                Цитата korvin @
                о да, очень многие

                Да, многие.
                Цитата korvin @
                хоть один из этих многих может предоставить современную реализацию?

                Что такое "современная реализация"? Написанная в последние годы? Я без понятия, я не слежу за реализациями Simul'ы. Потому что они никак не влияют на факт того, кто был первым. На факт того, что в C++, C#, Java (очень популярных языков, 35% в сумме по оценкам TIOBE) видно гораздо большее влияние Simul'ы, чем Smalltalk'а. Хотя роль и значение последнего я не игнорирую. Если угодно, можете смотреть на эти языки как на современную интерпретацию мотивов Simul'ы.
                В конце концов я говорил о другом: слова Алана Кея - всего лишь слова. Так что не надо приписывать им аксиоматичность и прочую магическую силу - никто ниц всё равно не падёт.
                Сообщение отредактировано: MyNameIsIgor -
                  Цитата korvin @
                  в C++ же мы тут наблюдаем обычное процедурное программирование на структурах
                  В С++ ты сам выбираешь, язык выбирает за тебя только, если ты его не знаешь.
                    Цитата IL_Agent @
                    Выводит Base. А как же полиморфизм ? :blush:

                    ExpandedWrap disabled
                      #include<iostream>
                       
                      class Base
                      {
                      public:
                        virtual void Method(){std::cout<<"Base";}
                      };
                       
                      class Derive:public Base
                      {
                      public:
                        void Method(){std::cout<<"Derive";}
                      };
                       
                      void Func(Base& b)
                      {
                        b.Method();
                      }
                       
                      int main()
                      {
                        Derive d;
                        Func(d);
                      }

                    Добавили один символ и, о ЧУДО! ВСЁ ЗАРАБОТАЛО! Шайтнан... :)
                      Цитата MyNameIsIgor @
                      Что такое "современная реализация"? Написанная в последние годы? Я без понятия, я не слежу за реализациями Simul'ы.

                      хотя бы работающая. Впрочем я уже сам нашел.

                      Java, кстати, ведет себя в данном случае не так как плюсы и симула
                        Цитата D_KEY @
                        IL_Agent, от тебя ну никак не ожидал.
                        Сто раз обсуждали. Это некорректный код.

                        Да я знаю, что надо сделать, чтобы оно заработало. :D Почему компилятор мне про некорректность ничего не рассказал ?
                        Цитата MyNameIsIgor @
                        IL_Agent получил результат на уровень своих знаний - вот и всё.

                        Полученный результат абсолютно не очевиден и требует знаний, это я и показывал.

                        Цитата D_KEY @
                        Требуешь создание нового объекта конкретного типа - какой тут полиморфизм?

                        А если я делаю так:
                        Цитата Flex Ferrum @
                        Добавили один символ и, о ЧУДО! ВСЁ ЗАРАБОТАЛО! Шайтнан... :)

                        , то тип перестаёт быть "конкретным" ?

                        Добавлено
                        Цитата D_KEY @
                        Ничего не сделал, чтобы предотвратить срез - какой ты программист?

                        Программист, программирующий на языке, в котором нет подобных проблем ;)
                          Цитата D_KEY @
                          Кстати, речь о размещении вообще не идет.

                          Из этого напрямую и вытекает.

                          Цитата D_KEY @
                          std::string ведет себя так же.

                          А также он является владельцем самой строки, что заставляет не забывать о некоторых нюансах ;)

                          Цитата D_KEY @
                          Единственное, о чем тут можно говорить, так это об организации "стандартного" виртуального конструктора копирования, причем в стиле С++

                          Поподробнее?

                          Цитата Qraizer @
                          Romkin, не сомневаюсь. Вопрос был в эффективности ленивого копирования с его сложностью реализации по сравнению с простым хранением значения безо всяких распальцовок.

                          Это и так известно.

                          Цитата Red @
                          В C# нельзя делать структуры (типы значений) базовыми или производными типами других классов или структур. Хотя они неявно наследуются от класса ValueType.

                          То есть?
                            Цитата korvin @
                            Java, кстати, ведет себя в данном случае не так как плюсы и симула

                            Что значит "не так"? Синтаксис не тот? Что явно не надо указывать передачу по ссылке? Так и в шарпе точно так же.
                            Ну, так а кто сказал, что синтаксис идентичен? Просто они построены на ссылочной семантике, а плюсы - на значениях. Ничего криминального не вижу - это просто надо знать.
                            А по поводу логичности разделения в шарпе на ссылочные типы и значения уже обсуждалось...
                              Цитата DesweR @
                              Цитата Red @
                              В C# нельзя делать структуры (типы значений) базовыми или производными типами других классов или структур. Хотя они неявно наследуются от класса ValueType.

                              То есть?

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

                                семантика не та, нет в яве такой семантики, чтобы при передаче экземпляра Derived в Func(Base), вызывался Base.method. Т.е. тип аргумента всегда только ограничивает тип снизу, при этом всегда действует позднее связывание.

                                В симуле, кстати, экземпляры классов только ссылочные, но тип аргумента задаёт всегда точный тип, а при передаче подтипа происходит неявное приведение к супертипу
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 177 178 [179] 180 181 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.2867 ]   [ 14 queries used ]   [ Generated: 31.07.26, 20:59 GMT ]