• <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>
            posts - 58,  comments - 75,  trackbacks - 0
            看看今天的奧運(yùn)概念股和北京概念股的漲勢(shì)。都是靠前的。今年8月8日才開(kāi)始的奧運(yùn),在股市中現(xiàn)在就開(kāi)始了。再看看這些股在前期的準(zhǔn)備,就可知,開(kāi)始的時(shí)間更早了。今年股市會(huì)圍繞奧運(yùn)展開(kāi)嗎?要留意拉。想想在這個(gè)大事下,有多少消費(fèi)會(huì)被迸發(fā)出來(lái),有哪些概念會(huì)讓人感興趣,有什么行業(yè)會(huì)收益呢,他們會(huì)在什么時(shí)候會(huì)一一表現(xiàn)出來(lái)呢?
            posted @ 2008-01-02 15:47 walkspeed 閱讀(496) | 評(píng)論 (0)編輯 收藏
                對(duì)于程序開(kāi)發(fā),解依賴是很重要的。設(shè)計(jì)時(shí)要考慮到程序中有那些依賴關(guān)系,如何將他們解開(kāi)。解依賴并不是說(shuō)將這些依賴關(guān)系打斷,不要依賴了。而是接觸對(duì)實(shí)現(xiàn)的依賴。當(dāng)一個(gè)模塊的實(shí)現(xiàn)變了,它的變化不會(huì)對(duì)這個(gè)模塊有依賴的模塊產(chǎn)生大的影響,這就是解依賴了。
                解依賴有利于大規(guī)模的程序開(kāi)發(fā)。大規(guī)模的開(kāi)發(fā),一個(gè)軟件被分成了很多的模塊,解依賴后,這些模塊才可能單獨(dú)開(kāi)發(fā),對(duì)某模塊有深入了解的人才能更關(guān)注與這個(gè)模塊的開(kāi)發(fā)。大家在交流是關(guān)注與依賴的交互,而不是實(shí)現(xiàn)的細(xì)節(jié),有利于在更高層次上討論問(wèn)題。
                解依賴有利于程序的修改和升級(jí)。
                解依賴有利于模塊測(cè)試,集成測(cè)試。
                解依賴有利于開(kāi)發(fā)庫(kù)的形成。

                解依賴中有兩個(gè)總要的概念。模塊和接口。模塊的規(guī)??纱罂尚 4蟮哪K可以是一個(gè)庫(kù),甚至是一個(gè)軟件,小的模塊是一個(gè)函數(shù),或一個(gè)成員。模塊的目的是將一個(gè)確定的功能包裝起來(lái),向外提供一個(gè)統(tǒng)一的訪問(wèn)接口。接口是一種聲明,表示某個(gè)模塊有那些能力。

            posted @ 2007-12-29 09:50 walkspeed 閱讀(1317) | 評(píng)論 (3)編輯 收藏
            頭文件 regex.hpp

            常用的類
            boost::regex 正則表達(dá)式

            boost::cmatch 以char數(shù)組為容器,存儲(chǔ)匹配返回值。
            boost::smatch 以std::string為容器,存儲(chǔ)匹配返回值。

            boost::regex_match 匹配算法
            boost::regex_search 查找算法
            boost::regex_replace 替換算法

            簡(jiǎn)單例子

            #include <iostream>

            #include <boost/regex.hpp>

            int main( int argc, char* argv[] )
            {
                char *buf = "This is boost::regex example";

                boost::regex exampleregex( "boost::regex" );
                boost::cmatch result;

                if( boost::regex_search( buf, result, exampleregex ) )
                {
                    std::cout << result.str() << std::endl;
                }

                return 0;
            }

            注意regex.hpp的包含。要在開(kāi)發(fā)工具中設(shè)置boost頭文件所在位子。


            posted @ 2007-12-28 14:01 walkspeed 閱讀(9533) | 評(píng)論 (0)編輯 收藏
            瑞銀事件好像讓大家知道了中石油為何表現(xiàn)如此。同時(shí)也告訴大家中石油是個(gè)好股票,只是
            被人操縱了,才變成這樣。而問(wèn)題又回來(lái)了,我們?cè)撡I中石油嗎?

            我想應(yīng)該沒(méi)有什么別的答案吧,買,一定要買。
            看看中石化,神化都是什么價(jià)格。中石油就不應(yīng)該實(shí)在這個(gè)價(jià)格。

            他壟斷。在這個(gè)關(guān)乎國(guó)家、民族根本利益的行業(yè)里,在可預(yù)期的時(shí)間里還是壟斷。壟斷就有
            壟斷的利潤(rùn)。

            他是能源。石油是工業(yè)社會(huì)的血液,想一想吧。中國(guó)在加速工業(yè)化的過(guò)程,能少了石油嗎。
            新能源在現(xiàn)在這個(gè)能源消費(fèi)體系里還是很少以部分(還是可憐的少),作為概念是沒(méi)有問(wèn)題
            可是從市場(chǎng)的角度,他們還沒(méi)有到動(dòng)搖石油的底部。要不然美國(guó)不用打伊拉克啦。

            他也是資產(chǎn)。每個(gè)國(guó)家都要儲(chǔ)備他,想黃金一樣,要儲(chǔ)備來(lái)穩(wěn)定市場(chǎng)。

            買它,一定要買。

            什么時(shí)候買。看自己啦。
            posted @ 2007-12-28 13:15 walkspeed 閱讀(612) | 評(píng)論 (0)編輯 收藏
                要在分布式系統(tǒng)中找到一個(gè)對(duì)象,甚至是對(duì)象的某個(gè)實(shí)例,我們必須給他們一個(gè)唯一標(biāo)識(shí)。
                可以領(lǐng)用UUID來(lái)生成我們需要的唯一標(biāo)識(shí)。但是在snmp中并沒(méi)有選著UUID來(lái)標(biāo)識(shí)每個(gè)對(duì)象,而是使用
            了自己設(shè)計(jì)的Oid。這是為何呢?本人認(rèn)為,UUID雖可以唯一表示對(duì)象及其實(shí)例,但是UUID之間沒(méi)有什么
            關(guān)系,不能形成一種結(jié)構(gòu)來(lái)表示對(duì)象之間的關(guān)系。而Oid的顯現(xiàn)卻能滿足以上兩點(diǎn),唯一表示對(duì)象和顯示
            對(duì)象之間的結(jié)構(gòu),甚至是對(duì)象的實(shí)例的唯一標(biāo)識(shí)和實(shí)例之間的關(guān)系。
                這也給我們一個(gè)啟示,分布式系統(tǒng)中對(duì)象的標(biāo)識(shí)除了具有唯一性外,要有一定顯示對(duì)象之間關(guān)系的能
            力,會(huì)更好。
            posted @ 2007-08-31 14:01 walkspeed 閱讀(2603) | 評(píng)論 (1)編輯 收藏
                 摘要: 接口的使用者不應(yīng)該在使用完接口后直接銷毀接口,而應(yīng)該將接口返還給接口提供者。接口提供者來(lái)管理接口的聲明周期。  閱讀全文
            posted @ 2007-08-07 09:49 walkspeed 閱讀(1894) | 評(píng)論 (1)編輯 收藏
            當(dāng)我們使用函數(shù)時(shí)習(xí)慣于C函數(shù)的格式,即如下形式
            resulttype funname( arglist );
            返回值類型 函數(shù)名( 參數(shù)列表 );

            在Boost.Function中,我們可以方便的定義定義函數(shù)對(duì)象。不過(guò)在定義用來(lái)表示類成員函數(shù)的函數(shù)對(duì)象時(shí)
            第一個(gè)參數(shù)是類指針。而且在調(diào)用時(shí),要傳入一個(gè)類實(shí)例的指針。這樣用起來(lái)并不是很方便,因?yàn)檎{(diào)用者
            要知道類實(shí)例。這實(shí)際上沒(méi)有實(shí)現(xiàn)解耦。而解耦是我們使用回調(diào)或委托設(shè)計(jì)的一個(gè)目標(biāo)。

            為了解決這個(gè)問(wèn)題,我們要使用Boost.Bind庫(kù)

            Boost.Bind是一個(gè)函數(shù)對(duì)象工廠。他用來(lái)產(chǎn)生我們需要的函數(shù)對(duì)象。好了,有了它,你可以在你設(shè)計(jì)中大
            量使用Boost.Function。不用再去定義類成員函數(shù)形式的函數(shù)對(duì)象啦,只用定義普通函數(shù)對(duì)象。

            一個(gè)簡(jiǎn)單的例子

            class CExample
            {
            public:
                bool printstr( const std::string &str )
                {
                    std::cout << "CExample::printstr" << str << std::endl;
                    return true;
                }
            };

            //定義一個(gè)函數(shù)對(duì)象
            boost::function< bool ( const std::string& ) > printstr;

            //用Boost.Bind創(chuàng)建一個(gè)函數(shù)對(duì)象,賦給printstr
            CExample example;
            printstr = boost::bind( &CExample::printstr, &example, _1 );

            好了,我們創(chuàng)建了一個(gè)函數(shù)對(duì)象,而且調(diào)用時(shí)不再需要類實(shí)例拉。用Boost.Function和Boost.Bind大大
            的簡(jiǎn)化了Command模式的實(shí)現(xiàn)。

            在上面的例子中要個(gè)古怪的對(duì)象"_1"。這個(gè)叫做站位符,他代表這個(gè)位置有個(gè)參數(shù),但現(xiàn)在還不知道參
            數(shù)是什么。_1代表參數(shù)列表中的第一個(gè)位置上的參數(shù)。Boost.Bind一共定義了9個(gè)站位符對(duì)象。如下
            _1,_2,_3,_4,_5,_6,_7,_8,_9。分別代表參數(shù)列表中位子。

            Boost.Bind產(chǎn)生的函數(shù)對(duì)象可以直接使用,利用上面的例子。

            bool b = boost::bind( &CExample::printstr, &example, _1 )( "Hello World" );


            posted @ 2007-07-20 17:15 walkspeed 閱讀(12870) | 評(píng)論 (3)編輯 收藏
            Boost.Function庫(kù)用來(lái)提供一個(gè)對(duì)象化的函數(shù)指針。

            函數(shù)指針對(duì)設(shè)計(jì)很有用。它使調(diào)用者可以延期調(diào)用,調(diào)用時(shí)機(jī)由調(diào)用者確定。而且可以改變
            響應(yīng)者,以應(yīng)對(duì)不同的要求。

            C中的函數(shù)指針只能用于自由函數(shù)。在C++中除了自由函數(shù)還有函數(shù)對(duì)象和類成員函數(shù),這些
            C的函數(shù)指針是無(wú)法用的。這要求能適應(yīng)C++語(yǔ)言的函數(shù)指針。既然C++語(yǔ)言本身沒(méi)有提供,
            那就提供一個(gè)庫(kù)。stl提供了,但是定義了很多類型,使用起來(lái)并不是很方便,而且函數(shù)參數(shù)
            的個(gè)數(shù)被限定在兩個(gè)以下,更能是備受限制。Boost.Function庫(kù)提供了一個(gè)好的解決方案。

            Boost.Function庫(kù)可以支持自由函數(shù),函數(shù)對(duì)象,類成員函數(shù)。而且參數(shù)個(gè)數(shù)多達(dá)10個(gè)。
            Boost.Function庫(kù)利用模板技術(shù)來(lái)實(shí)現(xiàn)。生成的代碼有很高的運(yùn)行效率。本庫(kù)可以不用編譯
            直接使用。

            Boost.Function的頭文件。
            function.hpp

            定義一個(gè)Boost.Function的對(duì)象(是一個(gè)返回值類型為int,第一個(gè)參數(shù)是std::string類型
            第二個(gè)參數(shù)是float類新)

            boost::function< int ( std::string, float ) > funptr;

            上面這個(gè)定義方式是一種容易理解的定義方式。但有些編譯器不支持,如果想更多的編譯器
            支持,則用下面這種定義方式

            boost::function2< int, std::string, float > funptr;

            注意模板中有3個(gè)類型,而function類卻是boost::function2。應(yīng)為返回值類型不計(jì)算在參數(shù)
            類型中(原因很簡(jiǎn)單,C++的編譯器不會(huì)根據(jù)返回類型不同來(lái)區(qū)分函數(shù)定義的不同)。

            int freefun( std::string str, float f )
            {
                std::cout << str << " : " << f << std::endl;
                return 0;
            }

            class CFun
            {
            public:
                int operator() ( std::string str, float f )
                {
                    std::cout << str << " : " << f << std::endl;
                    return 0; 
                }
            }

            上面定義了一個(gè)自由函數(shù)和一個(gè)函數(shù)對(duì)象。下面將把他們付給function對(duì)象。

            賦值為自由函數(shù)
            funptr = &freefun;

            賦值為函數(shù)對(duì)象
            CFun fun;
            funptr = fun;

            以上兩種情況的調(diào)用方法一致,如下
            funptr( "float =", 10.0 );

            Boost.Function對(duì)象要能指向類型原函數(shù),其定義要如下

            class FreeClass
            {
            public:
                int out( std::string str, float f )
                {
                    std::cout << str << " : " << f << std::endl;
                    return 0; 
                }
            };

            boost::function< int ( FreeClass*, std::string, float ) > funptr;

            跨平臺(tái)的定義方法
            boost::function3< int, FreeClass*, std::string, float > funptr;

            賦值方法
            funptr = &FreeClass::out;

            調(diào)用方法
            FreeClass fc;

            funptr( &fc, "float =", 10.0 );


            posted @ 2007-07-18 13:28 walkspeed 閱讀(10626) | 評(píng)論 (2)編輯 收藏
            領(lǐng)域分析--認(rèn)識(shí)領(lǐng)域分析

            軟件分析的開(kāi)端一般是需求分析。但是在實(shí)踐中,發(fā)現(xiàn)了很多的問(wèn)題。
            1 用戶的需求并不是有用戶提出。在和用戶或軟件的風(fēng)險(xiǎn)承擔(dān)者交談后,會(huì)常發(fā)現(xiàn),他們對(duì)自己想要的
            軟件并不是很清楚,會(huì)提出一些籠統(tǒng)的要求。在開(kāi)發(fā)出一個(gè)原型后,他們會(huì)修正或更改,甚至推翻他們
            的需求。你會(huì)發(fā)現(xiàn)是你在不斷的提出、完善需求,用戶或風(fēng)險(xiǎn)承擔(dān)者只是在裁決你的需求。而這樣下去
            你的軟件要不斷的改,好像遙遙無(wú)期。
            2 需求多是一種功能的集合。軟件出來(lái)后,如果有了改動(dòng),或在新的項(xiàng)目中去復(fù)用以前的軟件會(huì)發(fā)現(xiàn)很
            難。對(duì)每個(gè)需求,你不得不從頭開(kāi)始。

            領(lǐng)域分析和需求分析不同,它不是面向功能的。而是面向問(wèn)題的。這有些像考試中解題。針對(duì)特定的問(wèn)
            題,來(lái)提供解決方案,并在這個(gè)方案的直接指導(dǎo)下解出題目。這個(gè)直接指導(dǎo)很有意義,應(yīng)為直接指導(dǎo)表
            示解題的方案將被應(yīng)用到解題的過(guò)程中(即是可實(shí)現(xiàn)的)。

            領(lǐng)域分析不是對(duì)要構(gòu)造的軟件進(jìn)行全面的分析。而是對(duì)軟件涉及到的特定的領(lǐng)域進(jìn)行分析(如寫多媒體
            軟件,你要對(duì)音視頻領(lǐng)域進(jìn)行分析)。而領(lǐng)域是與特定的知識(shí)相關(guān)聯(lián)的(如音視頻領(lǐng)域中關(guān)于音頻、視
            頻編解碼知識(shí),領(lǐng)域分析要搞清楚這個(gè)領(lǐng)域中的知識(shí),找出各知識(shí)點(diǎn)中的關(guān)系,并對(duì)它們進(jìn)行抽象,形
            成模型。領(lǐng)域分析強(qiáng)調(diào)的是問(wèn)題域。這就是說(shuō)它面對(duì)的是一個(gè)相對(duì)確定的范圍。軟件要解決的是一個(gè)相
            對(duì)確定的范圍。也有利于測(cè)試軟件。

            領(lǐng)域分析不能代替需求分析,但是可以脫離需求來(lái)對(duì)特定的領(lǐng)域進(jìn)行分析。領(lǐng)域分析后產(chǎn)生的設(shè)計(jì)要直
            接指導(dǎo)實(shí)現(xiàn),可以映射到軟件中。由于領(lǐng)域分析是面對(duì)問(wèn)題的,它產(chǎn)生的軟件不一定能滿足需求,可能
            根本就對(duì)應(yīng)不上需求。但是它是特定問(wèn)題的解決方案,可以作為一個(gè)機(jī)制來(lái)支持需求的實(shí)現(xiàn)。而且特定
            的問(wèn)題或著說(shuō)這種反應(yīng)某個(gè)領(lǐng)域中的知識(shí)關(guān)系的軟件其對(duì)應(yīng)的是一種穩(wěn)定的需求,比較容易復(fù)用、測(cè)試
            和發(fā)展。

            面對(duì)需求分析得到是一種應(yīng)用的要求。而根據(jù)軟件涉及的領(lǐng)域進(jìn)行分析,得到的是它的基本機(jī)制。應(yīng)用
            是多樣的,而機(jī)制其實(shí)就只有那么幾個(gè)。根據(jù)應(yīng)用的要求來(lái)組合這些機(jī)制。這樣需求的變化,并不會(huì)去
            過(guò)多的沖擊你通過(guò)領(lǐng)域分析得到的模型和實(shí)現(xiàn)。你要做的是對(duì)他們進(jìn)行組合。
            posted @ 2007-07-11 15:54 walkspeed 閱讀(2787) | 評(píng)論 (3)編輯 收藏
                new出來(lái)的空間如果沒(méi)有主動(dòng)銷毀,在程序退出時(shí)仍可能有內(nèi)存的泄露。
            操作系統(tǒng)描述到,在進(jìn)程退出時(shí)會(huì)銷毀它所使用的所有內(nèi)存空間,但這只是
            一個(gè)模型上的構(gòu)想和描述。在實(shí)際的操作系統(tǒng)的實(shí)現(xiàn)上并不能做到這一點(diǎn)。
            因?yàn)?,要?shí)現(xiàn)在進(jìn)程退出時(shí)銷毀它所使用的內(nèi)存空間,就要給每個(gè)被使用的
            內(nèi)存空間打一個(gè)標(biāo),表示這段內(nèi)存空間被那個(gè)進(jìn)程使用。在這種情況下,如
            果有多個(gè)使用小內(nèi)存量的進(jìn)程,并且被頻繁的創(chuàng)建和銷毀,那么光記住那些
            進(jìn)程標(biāo)致就要占用很大的內(nèi)存空間,這是一個(gè)很不劃算的方案。所以在實(shí)際
            中,操作系統(tǒng)并沒(méi)有給每個(gè)進(jìn)程使用的內(nèi)存空間打標(biāo)。這樣,有些小內(nèi)存是
            沒(méi)有被回收的,如果多次開(kāi)關(guān)這個(gè)程序就會(huì)發(fā)現(xiàn),有內(nèi)存被大量的占用,而
            不能被釋放。
                所以那些在程序中只有一個(gè)實(shí)例,并且是被new出來(lái)的對(duì)象,也應(yīng)該主動(dòng)
            的去手動(dòng)銷毀,而不能依賴程序退出時(shí)由系統(tǒng)銷毀。

                被new出來(lái)的對(duì)象其銷毀是兩個(gè)步驟。
                1 析構(gòu)對(duì)象。條用對(duì)象的析構(gòu)函數(shù),將對(duì)象占用的資源釋放掉。
                2 釋放內(nèi)存。將對(duì)象所占用的內(nèi)存釋放掉。
                
                如果new出來(lái)的對(duì)象沒(méi)有被銷毀,會(huì)造成連個(gè)層面上的泄露。
                1 對(duì)象泄露。他會(huì)造成背對(duì)象占用的資源也沒(méi)有銷毀或釋放。比如在對(duì)象
            中占有文件的句柄,在析構(gòu)時(shí)才釋放。如果對(duì)象泄露了,這個(gè)句柄是不會(huì)被釋
            放的。那個(gè)文件會(huì)一直被占用。如果文件打開(kāi)時(shí)是獨(dú)占的,那么及時(shí)對(duì)象所在
            的程序退出了,別的程序也別想訪問(wèn)這個(gè)文件。
                2 內(nèi)存泄露。所占用的內(nèi)存不能被釋放。

            posted @ 2007-05-31 10:50 walkspeed 閱讀(2717) | 評(píng)論 (5)編輯 收藏
            僅列出標(biāo)題  下一頁(yè)

            <2007年1月>
            31123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(4)

            隨筆分類(64)

            隨筆檔案(58)

            文章分類(3)

            文章檔案(3)

            相冊(cè)

            收藏夾(9)

            C++零碎

            好友

            搜索

            •  

            積分與排名

            • 積分 - 161397
            • 排名 - 163

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲精品综合久久| 国产精品岛国久久久久| 久久综合视频网站| 亚洲精品无码久久久久久| 精品无码久久久久国产| 国产亚洲精久久久久久无码AV| 青青青青久久精品国产h久久精品五福影院1421 | 72种姿势欧美久久久久大黄蕉| 成人亚洲欧美久久久久| 久久久久久久97| 99久久人人爽亚洲精品美女| 久久久久av无码免费网| 色噜噜狠狠先锋影音久久| 国产成人精品综合久久久久| 精品久久久久国产免费| 99久久精品国内| 精品久久久久久无码专区| 久久精品国产72国产精福利| 国产精品对白刺激久久久| 久久精品国产欧美日韩99热| 2020久久精品国产免费| 亚洲日本va午夜中文字幕久久| 国产精品美女久久久m| 久久婷婷五月综合成人D啪| 久久精品国产一区| 国产成人综合久久综合| 午夜不卡久久精品无码免费| 手机看片久久高清国产日韩| 日本一区精品久久久久影院| 国内精品久久久久影院免费| 国内精品人妻无码久久久影院导航| 久久成人精品| 久久av高潮av无码av喷吹| 久久综合九色综合97_久久久| 久久人人爽爽爽人久久久| 97精品国产97久久久久久免费 | 中文字幕日本人妻久久久免费 | 亚洲国产精品无码久久九九| 嫩草影院久久99| 欧美综合天天夜夜久久| 亚洲国产精品久久久久网站|