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

    Ну да. Но boost_foreach, qforeach и прочие существовали чуть ли не с сотворения мира :) Да, ты говорил, что в андроиде буста нет, но, во-первых, foreach там работать должен, а во-вторых его (буста) отсутствие говорит разве что об убогости андроидовского компилятора - под, например, ios, буст прекрасно может быть откомпилен.
      Цитата [S]mike @
      Так это же только в C++11 появилось?

      Да. В старом стандарте нужно использовать typedef'ы и пр. вещи для организации работы с типами, BOOST_FOREACH(или просто std::for_each) вместо нового for и т.п.
      Но тоже вполне можно жить. Впрочем, сейчас все потихоньку переползают на новый стандарт, благо есть clang и gcc.
        Цитата jack128 @
        в плюсах не принято хоть сколько нибудь значительную логику в конструкторе, поэтому то что с точки зрения дельфиста должно быть в конструкторе, в плюсах -выносится в отдельный метод

        Вы читаете неправильные книги :)
        Цитата jack128 @
        справедливости ради надо сказать, что массовое применение смартпоитеров первую проблему решает на корню.

        Идиома RAII вообще решает :)
        Цитата jack128 @
        вызов любого метода из конструктора НЕ полиморфный

        И слава Бьярну!
          Цитата --Ins-- @
          То, что существуют агрегированные и композитные объекты, которые не имеют смысла вне своего контейнера

          И? Как это коррелирует с написанием логики где то в промежутках между конструированием объекта?

          Цитата --Ins-- @
          Расшифруй слово "толком" :D В дельфях после работы конструктора объект создан полностью, без всяких "толком" ;)

          Да имелось ввиду, что ты его только создал, и уже пытаешься его куда то сохранить. У тебя ведь метод AfterConstruction является методом конструироваемого класса? Так смысл тогда писать код сохранения объекта гдето там в AfterConstruction ? Где логика? Почему ему не сделать метод SaveData например? Это же будет логичнее, чем когдя я увижу создание объекта в коде, и буду репу чесать, а в каком же месте он сохраняется... Если он только сцуко создался и все...
            Цитата OpenGL @
            а во-вторых его (буста) отсутствие говорит разве что об убогости андроидовского компилятора

            И что мне теперь делать? Ради мощности плюсов бросить программировать под самую популярную мобильную платформу, заклеймив позором Гугл? :crazy:
              Цитата --Ins-- @
              Никто не запрещал сделать объект с точки зрения ООП отдельным типом и не перемешивать все в кучу

              Ты путаешься в терминах. Сделать объект типом... Что это вообще означает?
              У каждого объекта в С++ есть тип :)

              Цитата
              В контексте сказанного выше - мешать то никто не мешает

              Что у тебя там смешано?
              Так как мне в Delphi сделать так, чтобы объекты моего класса использовали подсчет ссылок? У вас же ссылки неявные, вы ничего с ними сделать не можете...
                Цитата D_KEY @
                Так как мне в Delphi сделать так, чтобы объекты моего класса использовали подсчет ссылок?

                Так это в TInterfacedObject сделано ведь. Для поддержки интерфейсов.
                  Цитата [S]mike @
                  И что мне теперь делать? Ради мощности плюсов бросить программировать под самую популярную мобильную платформу, заклеймив позором Гугл?

                  Зачем? :rolleyes: Я не агитирую за плюсы вообще-то, я говорю о несостоятельности твоих аргументов против них :)
                  Сообщение отредактировано: OpenGL -
                    Цитата [S]mike @
                    Цитата D_KEY @
                    Так как мне в Delphi сделать так, чтобы объекты моего класса использовали подсчет ссылок?

                    Так это в TInterfacedObject сделано ведь. Для поддержки интерфейсов.

                    Я знаю(обсуждали уже). А если у меня нет ссылки на интерфейс? Я к тому, что в языке без сборки мусора и т.п. вещей, делать неявные ссылки для "классовых типов" как-то бессмысленно.
                    Сообщение отредактировано: D_KEY -
                      Цитата OpenGL @
                      Зачем? Я не агитирую за плюсы вообще-то, я говорю о несостоятельности твоих аргументов против них

                      Я не агитирую против плюсов как таковых, я говорю о том, что писать на них под Андроидом - геморройно. Другое дело готовый и оттестированный код спортировать.
                        Цитата [S]mike @
                        Ради мощности плюсов бросить программировать под самую популярную мобильную платформу, заклеймив позором Гугл? :crazy:

                        Каким позором? Там есть NDK и оно вполне себе развивается. Они как раз пришли к вполне прагматичной модели, сделав Java(ну или что-то другое, вроде Scala и пр.) по умолчанию и разрешив нативность для тех, кому это требуется.
                          Цитата KILLER @
                          Так смысл тогда писать код сохранения объекта гдето там в AfterConstruction ? Где логика? Почему ему не сделать метод SaveData например? Это же будет логичнее, чем когдя я увижу создание объекта в коде, и буду репу чесать, а в каком же месте он сохраняется... Если он только сцуко создался и все...


                          Откуда ты вообще приплел сохранение? Я спрашивал про помещение в контейнер

                          Цитата D_KEY @
                          В Java, например, рекомендуют(по крайней мере Эккель в Философии) как раз избегать вызова виртуальных методов в конструкторах, т.к. это приводит к проблемам и вызову метода для несконстрированного объекта.


                          В Java как я понял нет возможности такую ситуацию разрулить. А в Delphi - есть

                          Добавлено
                          Извиняйте, надо работать...
                            Цитата [S]mike @
                            Я не агитирую против плюсов как таковых, я говорю о том, что писать на них под Андроидом - геморройно.

                            Сложилось впечатление, что ты больше агитируешь за яву (и против плюсов), в отрыве от андорида :) Так-то понятно, что под него на яве разумнее писать.
                              Цитата --Ins-- @
                              Откуда ты вообще приплел сохранение? Я спрашивал про помещение в контейнер

                              Я может быть на так понял, но:
                              Цитата --Ins-- @

                              Например - как сделать так, чтобы сразу после конструирования класс или его потомок автоматически попадал в некое хранилище

                              Под хранилищем ты имел ввиду контейнер, да? Ну ладно...
                              Вот так пойдет?
                              ExpandedWrap disabled
                                class Object
                                {
                                public:
                                   Object(int a)
                                   : data (a)
                                   {
                                   }
                                   void Print()
                                   {
                                      std::cout << "data is: " << data;
                                   }
                                private:
                                   int data;
                                };
                                 
                                int main()
                                {
                                   std::vector<Object> vobj; //! Контейнер, хранилище, который будет хранить наши объекты.
                                 
                                   //! Конструируем и тут же кидаем в хранилище, как видишь фабрику городить не пришлось
                                   vobj.push_back(Object(5));
                                 
                                   vobj[0].Print();
                                   return 0;
                                }


                              А как ты сделаешь? Будешь хранить внутри своего объекта контейнер, в который этот же самый объект будет сохранен ? Или как?
                                Цитата --Ins-- @
                                В Java как я понял нет возможности такую ситуацию разрулить. А в Delphi - есть

                                Для этого тебе придется лезть или хотя бы знать о внутренней реализации классов иерархии(потому что у вас именно внутренней реализацией определяется порядок вызова конструкторов). Так может лучше просто не создавать себе проблем, чтоб и разруливать не нужно было?

                                Цитата
                                Извиняйте, надо работать...

                                За что тут извиняться-то :) ? А на вопросы по ссылкам ты бы ответил как-нибудь... Хочется выяснить до конца этот момент.
                                Сообщение отредактировано: D_KEY -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 467 468 [469] 470 471 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.5989 ]   [ 15 queries used ]   [ Generated: 28.07.26, 22:46 GMT ]