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


    Тебе показалось :)

    Цитата KILLER @
    Какой тогда прок от ваших модулей, если все что ты тут перечислил без проблем реализуется с помощью неймспейсов ?


    Не подменяй вопрос, он был другой. Модули с классами сопоставлялись, где класс берет на себя роль пространства имен. Но отвечу что такого хорошего в наших модулях
    1. Модуль - это единица компиляции
    2. Разделение интерфейса от реализации (вот если бы это было в C# - я бы значительно меньше имел против него, но мне очень не нравится необходимость писать код прямо внутри объявления класса)
    3. Возможность объявить implementation-only идентификаторы (функции, переменные, типы)
    4. initialization/finalization-секции. Классовые конструкторы/деструкторы не заменяют эти возможности, но могут удачно дополнять.
      Цитата --Ins-- @
      Не подменяй вопрос, он был другой. Модули с классами сопоставлялись, где класс берет на себя роль пространства имен.

      Не ну понимаешь, конечно можно сравнить запорожец с двигателем от бэхи, и сказать что запорожец круче, потому что умеет ездить... Но нужно ведь понимать вопрос...

      Цитата --Ins-- @
      Но отвечу что такого хорошего в наших модулях
      1. Модуль - это единица компиляции
      2. Разделение интерфейса от реализации (вот если бы это было в C# - я бы значительно меньше имел против него, но мне очень не нравится необходимость писать код прямо внутри объявления класса)
      3. Возможность объявить implementation-only идентификаторы (функции, переменные, типы)
      4. initialization/finalization-секции. Классовые конструкторы/деструкторы не заменяют эти возможности, но могут удачно дополнять.

      В принципе первые три пункта меня мало инетерсуют, так как С++ имеет такие возможности, а вот по 4 пункту было бы интересно послушать, что это за initialization/finalization-секции такие, для чего используются ?
        Цитата KILLER @
        Да ты не кипятись так. Какой тогда прок от ваших модулей, если все что ты тут перечислил без проблем реализуется с помощью неймспейсов ??? Немспейс - содержит объявления и реализации, то есть все то что нужно.

        разве нэймспейсы в C++ уже умеют разделять интерфейс и реализацию?
          Цитата KILLER @
          бы интересно послушать, что это за initialization/finalization-секции такие, для чего используются ?


          В гугле забанили? ;) Я по вечерам субботы уроки не даю :)
            Цитата korvin @
            разве нэймспейсы в C++ уже умеют разделять интерфейс и реализацию?

            интерфейс как правило располагается в заголовочном *.h файле, имплементация в *.cpp, также можно скрывать в имплементации некоторые локальные типы, чтобы не иметь к ним доступа из вне. А неймспейс - это как бы оболочка чтоли, тоесть описывается для того чтобы иметь имя "модуля" через которое можно обратится к типам/объектам описаным внутри.
              Цитата KILLER @
              что это за initialization/finalization-секции такие, для чего используются ?

              код в этих секциях выполняется при загрузке и выгрузке модуля соответственно
                Цитата --Ins-- @
                В гугле забанили? ;) Я по вечерам субботы уроки не даю :)

                Ааа, то есть теперь, мы за всеми аргументами и пояснениями будем посылать в гугл? :ph34r:

                Добавлено
                Цитата korvin @
                код в этих секциях выполняется при загрузке и выгрузке модуля соответственно

                Вот я и спрашиваю, что в нем можно расположить то ? Непонял я смысла этих секций.
                  Цитата korvin @
                  разве нэймспейсы в C++ уже умеют разделять интерфейс и реализацию?


                  Нет, ес-но, собственно C# ведь C++-ный синтаксис и тянет. Это, конечно, вопрос исключительно синтаксиса, но вопрос на самом деле серьезный. Насколько удобно иметь перед глазами отдельно объявление класса и всех его методов, чтобы реализация не путалась перед глазами. В таких случаях в 90% и документация класса не нужна. Все читаешь и понимаешь по исходникам

                  Добавлено
                  Цитата KILLER @
                  мы за всеми аргументами и пояснениями будем посылать в гугл?


                  Нет, только за базовыми понятиями, которые есть в каждом учебнике и элементарно гуглятся ;)
                    Цитата KILLER @
                    интерфейс как правило располагается в заголовочном *.h файле, имплементация в *.cpp, также можно скрывать в имплементации некоторые локальные типы, чтобы не иметь к ним доступа из вне. А неймспейс - это как бы оболочка чтоли, тоесть описывается для того чтобы иметь имя "модуля" через которое можно обратится к типам/объектам описаным внутри.

                    напрягает вот это "как правило", т.е. никаких гарантий, что все так делают.

                    ну так неймспейс-то такую возможность не предоставляет

                    Добавлено
                    Цитата KILLER @
                    Вот я и спрашиваю, что в нем можно расположить то ? Непонял я смысла этих секций.

                    да что угодно, считай эти секции конструктором и деструктором соответственно
                      Цитата --Ins-- @
                      Нет, только за базовыми понятиями, которые есть в каждом учебнике и элементарно гуглятся ;)

                      Я понял для чего они нужны из их названия если что, меня интересовало что в них описывать? Ну вот объявил я функцию, или тип свой, нахера мне эти секции сдались???? ЧТо я в них буду деструктор класса вручную вызывать или как?

                      Цитата korvin @
                      напрягает вот это "как правило", т.е. никаких гарантий, что все так делают.

                      Как правило я сказал к тому, что часто используют еще файлы с расширением *.hxx/*.cxx для описания шаблонов... А так, гарантий конечно нету, но все этому правилу следуют без исключения, а так это из серии: какие гарантии что я клиенту программу напишу, если он мне уже заплатил...

                      Цитата korvin @

                      ну так неймспейс-то такую возможность не предоставляет

                      Какую такую?

                      Добавлено
                      Цитата korvin @
                      да что угодно, считай эти секции конструктором и деструктором соответственно

                      Для чего? Примером можно? Я в них смысла просто не вижу :-?
                        Цитата KILLER @
                        ЧТо я в них буду деструктор класса вручную вызывать или как?

                        любая инициализация переменных уровня модуля.
                          Цитата korvin @
                          любая инициализация переменных уровня модуля.

                          т.е. глобальных переменых как я понимаю? Так а зачем мне оно в С++ нужно? Если все глобальные/статические переменные в С++ создаются автоматически на этапе запуска приложения, и я их при описании сразу же могу инициализировать, а удаляются во время его завершения.

                          Мне видица только одно практическое применение, писать в этих секциях что то типо
                          WriteLn("Module1 is initialized");/WriteLn("Module1 is finalized"); Только толку от этого?

                          Добавлено
                          А кстати в делфи глобальные/статическе переменые уровня модуля как я понял сами не удаляются и поэтому приходится их вручную удалять в секции finalize модуля или как?
                          Сообщение отредактировано: KILLER -
                            Цитата KILLER @
                            Если все глобальные/статические переменные в С++ создаются автоматически на этапе запуска приложения, а удаляются во время его завершения.

                            Интересно, а кто их инициализирует?

                            Добавлено
                            Цитата KILLER @
                            А кстати в делфи глобальные/статическе переменые уровня модуля как я понял сами не удаляются и поэтому приходится их вручную удалять в секции finalize модуля или как?

                            Нет, удаляются.
                            Сообщение отредактировано: DesweR -
                              Цитата DesweR @
                              Интересно, а кто их инициализирует?

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

                              Добавлено
                              DesweR, может быть ты мне пояснишь практическую ценность этих секций?
                                Цитата KILLER @
                                Мне видица только одно практическое применение, писать в этих секциях что то типо
                                WriteLn("Module1 is initialized");/WriteLn("Module1 is finalized"); Только толку от этого?

                                Можешь зарегистрировать сообщения, установить обработчик исключений, подменить менеджер памяти, инициализировать пул потоков, да вообще что угодно.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 26 27 [28] 29 30 ...  494 495


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