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

    Программирование на ассемблере позволяет не познакомиться с аппаратной составляющей, а потонуть в ней :D
      Цитата OpenGL @
      Цитата sergioK @
      ну смотри

      Так это java. В плюсах на отсутствие закрытия мало того, что не ругается, так оно еще и автоматом в деструкторе делается :D

      Чего чего

      ExpandedWrap disabled
         FILE *fp;
         fp=fopen("c:\\test.txt", "r");


      и деструктор мне сам вызовет close ?
        Цитата sergioK @
        и деструктор мне сам вызовет close ?

        в пыхе да :tong:
          Цитата sergioK @
          Цитата OpenGL @
          Цитата sergioK @
          ну смотри

          Так это java. В плюсах на отсутствие закрытия мало того, что не ругается, так оно еще и автоматом в деструкторе делается :D

          Чего чего

          ExpandedWrap disabled
             FILE *fp;
             fp=fopen("c:\\test.txt", "r");


          и деструктор мне сам вызовет close ?

          Это Си. Там нет деструкторов.
          ExpandedWrap disabled
            std::ifstream f("c:\\test.txt");

          Вот тут вызовется деструктор сам, да.

          Для FILE* и fopen как-то так можно
          ExpandedWrap disabled
            auto f = std::shared_ptr<FILE>(fopen("c:\\test.txt", "r"), fclose));
            Есть еще __attribute__((cleanup(fclose))), но это тоже GCC'изм
              Цитата D_KEY @
              ExpandedWrap disabled
                std::ifstream f("c:\\test.txt");

              Вот тут вызовется деструктор сам, да.

              Для FILE* и fopen как-то так можно
              ExpandedWrap disabled
                auto f = std::shared_ptr<FILE>(fopen("c:\\test.txt", "r"), fclose));

              Праильно потому что в деструкторе класса написали вызов метода close , хотя это IMHO момент спорный ,
              буквально вчера была ситуация где закрытие происходит при некоем событии, уже после разрушения обьекта
              да а если обьект живет а ресурс уже не нужен ?
              Или как у меня бывало, есть у тебя ресурс например некий SAPConnector c методами
              connect и disconnect откуда твой деструктор сам узнает что нужно вызвать именно disconnect ?
              почему не сlose или destroy ? Именно по это причине в жаве вернулись к чистому С IMHO


              Вообще Я изначально сказал что открытие и закрытие должно происходить про принципу before/after , т,е
              в том же методе , это и есть open/close principle,
              ЯП тут не причем
              Сообщение отредактировано: sergioK -
                Цитата sergioK @
                и деструктор мне сам вызовет close ?
                Вообще, при завершении программы все оставшиеся открытыми к тому времени файлы будут закрыты. Но не раньше. Так что обычно всё делается ручками.

                Перехват malloc мало что даёт. Разве что позволяет контролировать память. А exit вообще не из этой оперы.
                  Цитата sergioK @
                  Праильно потому что в деструкторе класса написали вызов метода close , хотя это IMHO момент спорный ,
                  буквально вчера была ситуация где закрытие происходит при некоем событии, уже после разрушения обьекта
                  да а если обьект живет а ресурс уже не нужен ?
                  Нормальные люди делают из ресурса объект. С конструктором и деструктором. И далее работают не с ресурсами. Не нормальные - выдумывают костыли, издалека похожие на конструктор и деструктор.
                    Цитата sergioK @
                    да а если обьект живет а ресурс уже не нужен ?

                    Тогда закрыть руками, как это ни странно :D
                      Цитата amk @
                      Цитата sergioK @
                      и деструктор мне сам вызовет close ?
                      Вообще, при завершении программы все оставшиеся открытыми к тому времени файлы будут закрыты. Но не раньше. Так что обычно всё делается ручками.

                      Перехват malloc мало что даёт. Разве что позволяет контролировать память. А exit вообще не из этой оперы.

                      Так это ось вызовет , а ее нагружать не хочеться ,


                      Qraizer
                      Обьект или не обьект метод закрывающий ресурс ты должен вызвать сам , в деструкторе или нет
                      Я говорю о has a в случае когда обьект не уничтожаеться,
                      ты о is a что лучше зависит от задачи ,
                      Меня пытаються убедить в чудо компайлере который догадаеться что у ресурса есть метод
                      закрывающий ресурс, и сможет его вызвать
                        Цитата sergioK @
                        Именно по это причине в жаве вернулись к чистому С IMHO

                        Ну не думаю, что создатели Java думали только о деструкторах
                        Цитата sergioK @
                        Или как у меня бывало, есть у тебя ресурс например некий SAPConnector c методами
                        connect и disconnect откуда твой деструктор сам узнает что нужно вызвать именно disconnect ?
                        почему не сlose или destroy ?

                        В Сишке это рулится соглашениями об именовании функций. Я вот например называю все "деструкторы" <objname>_destroy :)
                        Сообщение отредактировано: Мяут-Настоящий -
                          Цитата sergioK @
                          Меня пытаються убедить в чудо компайлере который догадаеться что у ресурса есть метод
                          закрывающий ресурс, и сможет его вызвать

                          Вообще-то это ты высказал мысль, что коймпайлер должен кидать warning в том случае, если ресурс был открыт, но не был закрыт....
                            Цитата sergioK @
                            Меня пытаються убедить в чудо компайлере который догадаеться что у ресурса есть метод
                            закрывающий ресурс, и сможет его вызвать

                            О чудо-компиляторах, догадывающихся о существовании метода и о том, что его забыли вызвать, рассказываешь ты :D
                              Цитата Fester @
                              Цитата sergioK @
                              Меня пытаються убедить в чудо компайлере который догадаеться что у ресурса есть метод
                              закрывающий ресурс, и сможет его вызвать

                              Вообще-то это ты высказал мысль, что коймпайлер должен кидать warning в том случае, если ресурс был открыт, но не был закрыт....

                              если не компайлер то IDE, look attachment, с опцией warning as error хотя он тоже не все могущь


                              Цитата

                              В Сишке это рулится соглашениями об именовании функций. Я вот например называю все "деструкторы" <objname>_destroy


                              т.е т.е строишь interface, это для тех у кого в си нету классов ;)
                                Цитата sergioK @
                                если не компайлер то IDE, look attachment, с опцией warning as error хотя он тоже не все могущь

                                Warning as error - опция именно компилятора. А то, о чем ты говоришь - статический анализ. И то - он не обязан работать со всеми библиотеками :D
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (17) « Первая ... 2 3 [4] 5 6 ...  16 17 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0438 ]   [ 15 queries used ]   [ Generated: 18.06.25, 04:36 GMT ]