• <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>

            martin

            thinking

            常用鏈接

            統計

            software

            最新評論

            re: 學好c++50條[未登錄] martin_yahoo 2009-03-20 14:16
            說的不錯.
            re: 應用系統中的定時器設計 martin_yahoo 2009-03-18 15:45
            因為該代碼實例是從Drawin,ICE等應用中摘要而出,但這些系統可能為了系統的需要,進行了一些比較復雜的設計.其實你只要在意原理就行,也就是僅這一段即可:
            上面所介紹的,主要是些數據結構. 定時器設計的關鍵部分如下: ....
            re: 智能指針的代碼實例[未登錄] martin_yahoo 2009-03-09 18:01
            u r right. These souce code is abstracted from ICE.
            re: C++中的智能指針[未登錄] martin_yahoo 2009-03-09 16:19
            @abettor
            你可以參閱:
            智能指針的代碼實例
            re: C++中的智能指針[未登錄] martin_yahoo 2009-03-09 15:14
            @陳梓瀚(vczh)
            class T; //雙向鏈表的節點類
            class T_var;  //為指向對象T的智能指針類.
            class T_list; //雙向鏈表數據結構類
            假設class T為雙向鏈表上的節點,故它的定義可以簡單地用如下方式表示:

            calss T{
            ....
            private:
            T_var beforePtr;
            T_var nextPtr;
            };

            現在考慮三個節點:N ,N1,N2節點.
            N節點的nextPtr指向N1, beforePtr指向其它節點
            (如果N節點前面沒有其它節點,此時只有N1節點引用它,則它的引用計數為1;如果前面還有還有其它節點,則它的引用計數為2).

            N1節點的nextPtr指向N2, beforePtr指向N節點.
            (N1節點的引用計數為2).

            N2節點的nextPtr指向其它節點, beforePtr指向N1節點.
            (如果N節點后面沒有其它節點,此時只有N1節點引用它,則它的引用計數為1;如果后面還有還有其它節點,則它的引用計數為2).

            現在假設要刪除N1節點, 把N2節點中的beforePtr指向N,
            則N節點的引用計數增加一,N1節點的引用計數減少1,變成1.
            把N節點的nextPtr指向N2節點,則N2的引用計數增加一,N1節點的引用計數減少1,從而N1節點的引用計數被降到0,N1節點將被自動摧毀.

            此時,N,N2節點的引用計數將各自減一.維持與N節點存在是一致.這種情況下沒完蛋.

            考慮到在類T_list中包含有雙向鏈表的首,尾地址.因此在一般情況下,各節點的引用計數都為2.

            因此,對于首,尾節點的操作與N1節點一致.
            m_lock 中含有一些成員不能更改,故采用了const修飾,對于加瑣和釋放部分利用mutable修飾.
            @Matrixcoding
            至于異常處理,那就根據業務的需要進行異常處理就可以了.
            至于const引用,就是避免在應用中對Guard中的成員m_lock進行更改.如果可以進行更改,則可能應用中多個線程要對同一資源加鎖,可以更改后,可能處理的不是同一個鎖,從而不能對資源進行有效地保護.
            re: C/C++混合編程[未登錄] martin_yahoo 2009-03-05 23:20
            @cdy20
            只不過是在c頭文件中已經加上了如下類似的語句:
            #ifdef _c_plus_plus
            extern "C"{
            #endif
            .....
            #ifdef _c_plus_plus
            }
            #endif

            如果在c語言的頭文件中加上述語句, 就應象采用隨筆中提到的做法.
            re: C++的一些基礎知識[未登錄] martin_yahoo 2009-03-05 22:00
            @Sandy
            第一種情況
            class B : private A
            {
            ....
            };
            B 從A私有繼承.
            第二種情況:
            class B{
            ...
            private:
            A a;
            ...
            };
            B含有一個A對象為實例,并且為B的私有成員.
            @S.l.e!ep.¢%

            如果程序在m_lock.acquire()處鎖失敗,則應用在此hang住,直到其他線程釋放資源,并被該線程獲取為止.此時這個線程會把資源所定.
            精品久久久久久| 久久亚洲AV永久无码精品| 亚洲国产婷婷香蕉久久久久久 | 国产精品99久久久久久猫咪 | 国产精品久久久香蕉| 亚洲香蕉网久久综合影视| 久久99国产精品二区不卡| 久久久噜噜噜久久中文字幕色伊伊| 久久久久久久波多野结衣高潮 | yy6080久久| 久久91精品久久91综合| 中文字幕无码av激情不卡久久| 久久天天躁狠狠躁夜夜avapp | 久久久久亚洲AV无码永不| 久久综合久久综合久久| 精产国品久久一二三产区区别| 久久99毛片免费观看不卡| 蜜臀久久99精品久久久久久| 久久国产精品一国产精品金尊| 久久久久婷婷| 97超级碰碰碰碰久久久久| 亚洲精品乱码久久久久久按摩 | 伊人久久免费视频| 一本色道久久HEZYO无码| 久久天天躁狠狠躁夜夜不卡 | 久久水蜜桃亚洲av无码精品麻豆| 久久国产福利免费| 精品一区二区久久久久久久网站| 人妻精品久久久久中文字幕69| 一本色综合久久| 国产精品亚洲综合久久| 中文字幕精品久久| 久久久久亚洲av成人网人人软件| 久久久久人妻精品一区三寸蜜桃 | 久久久久久国产精品美女| 久久久久久久尹人综合网亚洲| 久久精品午夜一区二区福利| 久久婷婷五月综合色奶水99啪| 久久综合香蕉国产蜜臀AV| 少妇人妻88久久中文字幕| 97精品依人久久久大香线蕉97|