• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++研究

            C++細節深度探索及軟件工程

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              37 隨筆 :: 0 文章 :: 74 評論 :: 0 Trackbacks
            Memory leaks , more important in Symbian C++ than that's in the PCS, But when you programs for a Media Processor which must run for there year or even much longer , you must consider Memory leaks seriously. How can avoid leaking?
             
            1. remeber delete after you new operation
             
            Just this is enougn? Of course , Many leaks come from this stimulation. but that's not all.
            for E.G:
            class ClassB {
            private:
            ClassA* ptr1; //pointer members
            ClassA* ptr2;
            public:
            //constructor that initializes the pointers
            //- will cause resource leak if second new throws
            ClassB (ClassA val1, ClassA val2)
            : ptr1(new ClassA(val1)), ptr2(new ClassA(val2)) {
            }
            //copy constructor
            //- might cause resource leak if second new throws
            ClassB (const ClassB& x)
            : ptr1(new ClassA(*x.ptr1)), ptr2(new ClassA(*x.ptr2)) {
            }
            //assignment operator
            const ClassB& operator= (const ClassB& x) {
            *ptr1 = *x.ptr1;
            *ptr2 = *x.ptr2;
            return *this;
            }
            ~ClassB () {
            delete ptr1;
            delete ptr2;
            }
            ...
            };
            if an exception occurs inside a constructor,
            destructors are only called for objects that have been fully constructed. This might result in a
            resource leak if, for example, the first new was successful but the second was not.
             
            2.How can I avoid such a possible resource leak?
            you can use simply auto_ptr.(In Symbian , in my opinion ,The CleanStack works in the same machanism)
             
            The code can write like the follows:
            class ClassB {
            private:
            const std::auto_ptr<ClassA> ptr1; //auto_ptr members
            const std::auto_ptr<ClassA> ptr2;
            public:
            //constructor that initializes the auto_ptrs
            //- no resource leak possible
            ClassB (ClassA val1, ClassA val2)
            : ptr1 (new ClassA(val1)), ptr2(new ClassA(val2)) {
            }
            //copy constructor
            //- no resource leak possible
            ClassB (const ClassB& x)
            : ptr1(new ClassA(*x.ptr1), ptr2(new ClassA(*x.ptr2)) {
            }
            const ClassB& operator= (const ClassB& x) {
            *ptr1 = *x.ptr1;
            *ptr2 = *x.ptr2;
            return *this;
            }
            //no destructor necessary
            //(default destructor lets ptr1 and ptr2 delete their objects)
            ...
            };
             
            Note, however, that although you can skip the destructor, you still have to program the copy
            constructor and the assignment operator. By default, both would try to transfer ownership, which
            is probably not the intention. In addition, and as mentioned on page 42, to avoid an unintended
            transfer of ownership you should also use constant auto_ptrs here if the auto_ptr should
            refer to the same object throughout its lifetime
            posted on 2007-04-16 22:22 常興龍 閱讀(200) 評論(0)  編輯 收藏 引用
            > hi的博客
            婷婷久久精品国产| 性高朝久久久久久久久久| 久久精品中文字幕久久| 亚洲国产精品无码久久青草| 久久久久亚洲AV无码专区网站| 久久九九免费高清视频 | 国产日韩欧美久久| 久久久WWW成人| 久久久久噜噜噜亚洲熟女综合| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 一本大道加勒比久久综合| www.久久热.com| 久久人人超碰精品CAOPOREN| 久久久久久毛片免费看| 狠狠色丁香久久婷婷综合_中| 久久久久久久久久久| 久久99国产精品99久久| 四虎国产精品成人免费久久| 人妻中文久久久久| 亚洲欧美一级久久精品| 亚洲精品无码久久久影院相关影片 | 午夜精品久久久久久影视riav| 色综合久久综合中文综合网| 久久国产精品无码一区二区三区| 国产巨作麻豆欧美亚洲综合久久| 久久久精品国产亚洲成人满18免费网站| 久久久久久国产精品美女| 久久只有这里有精品4| 久久久久久九九99精品| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 欧洲性大片xxxxx久久久| 99久久香蕉国产线看观香| 久久精品亚洲一区二区三区浴池 | 久久人人爽人人爽AV片| 亚洲AV无码久久精品狠狠爱浪潮 | 国产成人无码精品久久久性色| AAA级久久久精品无码区| 亚洲国产成人久久笫一页| av国内精品久久久久影院| 新狼窝色AV性久久久久久| 久久久久国色AV免费观看|