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

    нет, не следует, из этого следует, что пользователь получит жопу т.к. ожидал, что работает с объектом класса A<B>, а получилось, что с недо-A<B>
      Цитата korvin @
      ожидал, что работает с объектом класса A<B>

      Да, и его ожидания оправдались :yes:
      Ты пропустил мимо ушей мои рассуждения о типах? Тип A<B> и тип A<C> - это разные типы. В том числе, у них может различаться и набор операций.
      Сообщение отредактировано: D_KEY -
        Цитата MyNameIsIgor @
        А сами не видите? Как я могу получить some_type в вашем коде? Где он у вас вообще? :lol: Или решили дурачка включить? С чего у вас void f()?

        потому что у вас он изначально void был, потому не обратил внимание, ну да пожалуйста:
        ExpandedWrap disabled
          interface Impl<T> {
              T f();
          }
           
          class DefaultImpl<T> implements Impl<T> {
              public static final boolean flag = true;
              private T data;
              public DefaultImpl(T data) { this.data = data; }
              public T f() {
                  System.out.printf("Default (%s)\n", flag);
                  return data;
              }
          }
          Цитата korvin @
          потому что у вас он изначально void был, потому не обратил внимание, ну да пожалуйста

          Что пожалуйста? :) Вы так и не поняли? Метод f() у меня возвращает не T, а some_type. Для того он в Impl и объявлен. Хочу так же на джаве (шарпе, дельфи - не важно) :)
            Цитата D_KEY @
            Да, и его ожидания оправдались :yes:

            нет. ибо A<?> декларирует публичный метод g(), а полученный A<B> -- нет

            Цитата D_KEY @
            Ты пропустил мимо ушей мои рассуждения о типах?

            видимо да, т.к. не увидел в твоих постах никаких рассуждений о типах

            Цитата D_KEY @
            Тип A<B> и тип A<C> - это разные типы. В том числе, у них может различаться и набор операций.

            разные, но тип A он один. и тот же. для всех.

            Добавлено
            Цитата MyNameIsIgor @
            Что пожалуйста? :) Вы так и не поняли? Метод f() у меня возвращает не T, а some_type. Для того он в Impl и объявлен. Хочу так же на джаве (шарпе, дельфи - не важно) :)

            какое отношение typedef имеет к шаблонам? но да, возвращать значения произвольного типа одним и тем же методом в джаве нельзя. и правильно
              Цитата korvin @
              разные, но тип A он один. и тот же. для всех.

              В том то и дело, что типа A в плюсах не существует :) Есть только его шаблон.

              Добавлено
              Цитата korvin @
              какое отношение typedef имеет к шаблонам?

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

              Одним и тем же - да правильно. Вопрос в том, с чего это один и тот же метод? В плюсах это разные методы разных типов.
                Цитата korvin @
                нет. ибо A<?> декларирует публичный метод g(), а полученный A<B> -- нет

                что такое A<?> ;) ?

                Цитата
                видимо да, т.к. не увидел в твоих постах никаких рассуждений о типах

                Я повторю. Классы-политики и шаблоны вообще позволяют манипулировать конструированием типов.
                То, что предлагаешь ты работает в динамике и с объектами. Так можно сделать и в С++, но это не является аналогом того, что требуется.

                Цитата
                тип A он один. и тот же. для всех.

                A - не тип, а шаблон типа.
                В С++ не дженерики, korvin, в С++ шаблоны.
                  Цитата MyNameIsIgor @
                  В том то и дело, что типа A в плюсах не существует :) Есть только его шаблон.

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

                  P.S. а че это D_KEY в RO? o_O'
                    Цитата korvin @
                    возвращать значения произвольного типа одним и тем же методом в джаве нельзя

                    :wacko:
                    Покажи, где в приведенном плюсовом коде один и тот же метод возвращает значения разных типов? В С++, кстати, это тоже нельзя, за исключением ковариантности при перегрузке виртуальных функций.
                      Цитата D_KEY @
                      Цитата korvin @
                      нет. ибо A<?> декларирует публичный метод g(), а полученный A<B> -- нет

                      что такое A<?> ;) ?

                      тайпкласс вида * -> *
                      =)
                        Цитата korvin @
                        но это же шаблон типа

                        Ага.
                        Цитата korvin @
                        вполне конкретный шаблон

                        Ага.
                        Цитата korvin @
                        вполне конкретного типа

                        Нет :) Это объясняли совсем недавно. Тип становится известен в момент инстанцирования. И никак не раньше.
                        Цитата korvin @
                        P.S. а че это D_KEY в RO? o_O'

                        Да-да! D_KEY, почисти личные сообщения ;)
                          Цитата korvin @
                          P.S. а че это D_KEY в RO? o_O'

                          Небольшое наказание. За ролик, размещенный в Юморе->Видеоприкол. Я пока не понял, что с ним было не так :)
                          Еще из-за этого(судя по всему) у меня ящик сообщений говорит, что переполнен, и не дает ничего отправить :)
                            Цитата D_KEY @
                            Я повторю. Классы-политики и шаблоны вообще позволяют манипулировать конструированием типов.
                            То, что предлагаешь ты работает в динамике и с объектами. Так можно сделать и в С++, но это не является аналогом того, что требуется.

                            то что предлагаю я работает хоть в динамике хоть в статике, это не важно.

                            Добавлено
                            Цитата D_KEY @
                            :wacko:
                            Покажи, где в приведенном плюсовом коде один и тот же метод возвращает значения разных типов? В С++, кстати, это тоже нельзя, за исключением ковариантности при перегрузке виртуальных функций.

                            т.е. невозможно узнать, является ли класс инстансом шаблона или нет?
                              Наказание на сутки всего)
                                Цитата korvin @
                                т.е. невозможно узнать, является ли класс инстансом шаблона или нет?

                                В статике - возможно. В run-time - нет. Полученные при инстанцировании типы никак не связаны. Если вы сами их не свяжите :)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 339 340 [341] 342 343 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.4887 ]   [ 15 queries used ]   [ Generated: 31.07.26, 10:51 GMT ]