• <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
            ??????? 程序開發其實本質上和語言沒有太大的關系,語言是一個實現程序的工具。程序開發,有自己要解決的問題,要高效的開發程序,必須要對這些問題給一個好的解決。這也就是說可以通過很多語言來學習程序開發。不必太拘禮這個問題,可以用丟骰子的方法來解決選擇語言的問題。
            ??????? 推薦語言,C++或JAVA。畢竟是兩種非常流行的語言,學好了工作比較好找,畢竟大多數人學這玩意是為了個飯碗。相比下JAVA的市場好像大些(特別是在企業級信息管理市場),工資也比較高。JAVA還有一個好處,就是它的開發范型比較單純,概念相對好掌握。C++在系統開發方面的優勢比較明顯,開發的方法靈活,對喜歡自由性格的人比較合適。C++如果能學好,對程序開發的理解將相當的深刻,好像可以達到手中無劍,心中亦無劍的境界(特別是能深刻理解范型開發后)。
            ??????? 選擇一個語言后一定要堅持的用下去,這個樣才能大有收獲,不要今天說什么好就學兩下,明天說什么后就學兩下,那樣學什么語言也沒有用。
            posted @ 2007-01-29 22:15 walkspeed 閱讀(372) | 評論 (1)編輯 收藏

            ??? 接口,通俗的來說就是定義了一組要實現的功能,這些功能被表現為一組函數,
            這些函數在語義上給定接口實現類的責任。
            ??? C++中常用的定義接口的方法是純虛類。但是定義的函數卻是要確定操作類型的
            但是從接口在語義上的考慮,其實是不需要的。
            ??? 用模板技術來改變。
            ??? 定義一個接口類,在類中只定義接口函數,這些函數是Client要使用的,這個
            類是一個模板類,如下
            ??? template< typename T >
            ??? class Interface
            ??? {
            ??? public:
            ??????? template< typename T1 >
            ??????? void Fun( const T &t );
            ???
            ??????? ......
            ??? };
            ??? 這種方式解決了接口函數被類型限制。
            ??? 模板類的參數是一個繼承類,這個繼承類完成實際的操作。實體類的定義如下
            ??? class C : public Interface< C >
            ??? {
            ??????? ......
            ??? };

            ??? 子類去一個個的實例話其實很不好,也不符合一般C++的編程方法。由于在模板
            編程的情況下,更注重的是語義的符合,所以可以在子類中使用重載的方法去實現對
            不同類型的實際處理(畢竟沒有類的編寫者知道自己這個類要處理的類型)。那么可
            以載接口類中寫些代碼,來調用子類的函數,這種調用實際上在語義上定義了子類要
            實現的責任。上面的接口的定義變成下面這個樣子
            ??? template< typename T >
            ??? class Interface
            ??? {
            ??? public:
            ??????? T* This( void ) { return static_cast< T* >( this ); }

            ??????? template< typename T1 >
            ??????? void Fun( const T &t )
            ??????? {
            ??????????? this->This()->Ope( t );
            ??????? }
            ???
            ??????? ......
            ??? };
            ???
            ??? 這樣,子類只用實現對不同類型的處理的Ope函數了,對外的公共接口還是一樣的。
            顯現中要講基類編程子類的友員,Ope定義在protected或private作用域中。??

            posted @ 2007-01-13 18:06 walkspeed 閱讀(2292) | 評論 (0)編輯 收藏
            ??????? 開發方法很多,從大學中學到的瀑布式的工程方法(雖然書中有說別的方法,但其實只講了這一個方法)。這種將一切問題都確定后,生成文檔,在開始編程的方法越來越不適用了。不過我見過的公司里的管理層特喜歡用,特別是那些沒有搞過開發,憑著一張嘴的管理出生的管理者。
            ??????? 世界是變化的,軟件要解決的問題也是不斷的變化(人是善變的)。
            posted @ 2006-12-18 20:51 walkspeed 閱讀(269) | 評論 (1)編輯 收藏
            ??? 類之間的通訊和定位的封裝好是頭疼呀。思考了好長時間還是沒有什么好的解。
            ??? 通訊時的不通參數類型和數量,獲得響應的實體類。
            ??? 事件,消息,命令。表面上看差不多,媽的私底下又是有差別的,封裝不通,傳遞不通。還有不通的概念定義和解釋。
            posted @ 2006-10-14 12:20 walkspeed 閱讀(237) | 評論 (1)編輯 收藏
            ??? 記得在剛開始學習C++的時候,有一條規定,就是在基類中聲明的虛函數,在子類中重載時不要改變這個函數的作用域。例如在基類public中聲明的虛函數,在其子類中重載時還應該時public的。
            ??? 但我在看DirectShow的代碼中發現有的子類改變了父類的虛函數的作用域。先開始想,那幫人怎么會犯這么低級的錯誤,后來一想應該有其原因。在思考后,覺得改變了父類虛函數的作用域是一件很有趣的事情。如果子類的實例被轉換成父類,這個函數是可以調用的,而當他是子類時是不行的。
            ??? 突然我發現,這樣就要了一個層次的關系,在父類一層,何子類一層。當一個用戶在不同的層次時,操作的權利是不同的。它起到了某種限制。
            呵呵,好精致的玩意。
            posted @ 2006-09-15 22:13 walkspeed 閱讀(643) | 評論 (2)編輯 收藏

            ??????? 前兩兩天才開始研究XVID,下了開源的包,按網上寫的方法怎么也沒編譯過去,后來自己把它編出來了。現在寫下來與大家分享。

            ??????? VC6下面我是怎么也沒編譯成功,個人認為在VC6下面是編譯不出來的,大家不用再試了。

            ??????? 我是用VC2003編譯出來的。下一個NASM.EXE,放到你的安裝目錄\Microsoft Visual Studio .NET 2003\Common7\Tools 下面就可以了。

            ??????? 將所有asm文件命令行中如下的語句
            ??????? nasm -f win32 -DPREFIX -o "$(IntDir)"\"$(InputName)".obj "$(InputPath)"
            ??????? 改為
            ??????? nasm -f win32 -DPREFIX -o $(IntDir)\$(InputName).obj $(InputPath)

            ??????? 將如下語句
            ??????? nasm -f win32 -DPREFIX -I"$(InputDir)"\ -o "$(IntDir)"\"$(InputName)".obj "$(InputPath)"
            ????????改為
            ????????nasm -f win32 -DPREFIX -I$(InputDir) -o $(IntDir)\$(InputName).obj $(InputPath)

            ?????????編譯就ok了

            posted @ 2006-06-13 22:41 walkspeed 閱讀(2310) | 評論 (7)編輯 收藏
            ??? 仿函數就是使對象使用行為看上去像個函數。
            ??? 函數的使用是這個樣的
            ??? Function(param1,param2,...)
            ??? 而對象的使用是這個樣的
            ??? Object.memberfunction(param1,param2...)
            ??? 而仿函數對象的使用是這個樣的
            ??? Object(param1,param2,...)
            ??? 這樣我們可以看出,從外表上看,仿函數對象和函數是一個東西。呵呵,當然他們是不同的。他們一樣不過是在使用的外形上一樣罷了。

            ??? 一個仿函數類如下定義
            ??? class ObjectFunction
            ??? {
            ??????? .......
            ??????? public:
            ??????????? 返回的類型 operator() ([param1,param2,...]);
            ???? };

            ???? 例1
            ???? class ObjectFunction1
            ???? {
            ????????? .......
            ????????? public:
            ????????????? void operator() () { count << "No Param ObjectFuntion" << endl;
            ????? };

            ??????例2
            ????? class?ObjectFunction2
            ????? {
            ?????????? ........
            ?????????? public:
            ?????????????? bool operator() (int x)
            ?????????????? {
            ?????????????????? count << "Have Param?ObjectFuntion" << endl;
            ?????????????????? count << "This is ObjectFuntion's Param" << x << endl;

            ???????????????????return true;
            ??????????????? }
            ???????? }

            ?????????仿函數的關鍵是要實現 operator() 運算符。
            ?????
            posted @ 2006-03-23 23:22 walkspeed 閱讀(5715) | 評論 (7)編輯 收藏
            ??? 仿函數,就是是一個類的使用看上去象一個函數。其實現就是類中實現一個operator(),這個類就有了類似函數的行為,就是一個仿函數類了。
            ??? 在我們寫代碼時有時會發現有些功能的實現的代碼,會不斷的在不同的成員函數中用到,但是有不好將這些代碼單立出來成為一個類的一個成員函數。但是又很想復用這些代碼。寫一個公共的函數,可以,這是一個解決方法,不過函數用到的一些變量,就可能成為公共的全局變量,再說為了復用這么一片代碼,就要單立出一個函數,也不是很好維護。這時就可以用仿函數了,寫一個簡單類,除了那些維護一個類的成員函數外,就只是實現一個operator(),在類實例化時,就將要用的,非參數的元素傳入類中。這樣就免去了對一些公共變量的全局化的維護了。又可以使那些代碼獨立出來,以便下次復用。而起這些仿函數,還可以用關聯,聚合,依賴的類之間的關系,于用到他們的類組合在一起,這樣有利于資源的管理(這點可能是它相對與函數最顯著的有點了)。如果在配合上模板技術和policy編程思想,那就更是威力無窮了,大家可以慢慢的體會。
            ???? 在下只是拋磚引玉,希望大家多多指教。
            posted @ 2006-03-22 22:15 walkspeed 閱讀(806) | 評論 (3)編輯 收藏
            僅列出標題
            共6頁: 1 2 3 4 5 6 

            <2007年5月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(4)

            隨筆分類(64)

            隨筆檔案(58)

            文章分類(3)

            文章檔案(3)

            相冊

            收藏夾(9)

            C++零碎

            好友

            搜索

            •  

            積分與排名

            • 積分 - 161400
            • 排名 - 163

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品免费大片国产大片| 99久久777色| 综合久久国产九一剧情麻豆| 2022年国产精品久久久久| 久久婷婷色综合一区二区| 日日噜噜夜夜狠狠久久丁香五月| 亚洲AV无码1区2区久久| 国产精品久久久天天影视香蕉| 亚洲欧美精品一区久久中文字幕 | 97久久天天综合色天天综合色hd| 久久国产高潮流白浆免费观看| 国产精品久久久久久久久鸭| 久久免费视频6| 久久精品一区二区三区不卡| 国产A三级久久精品| 性欧美大战久久久久久久| 狠狠色伊人久久精品综合网| 国产成人久久AV免费| 亚洲国产精久久久久久久| 久久这里只有精品久久| 国产一区二区精品久久岳| 曰曰摸天天摸人人看久久久| 18岁日韩内射颜射午夜久久成人| 99久久婷婷免费国产综合精品| 欧美喷潮久久久XXXXx| 国产精品成人无码久久久久久| 久久精品二区| 人妻精品久久久久中文字幕69| 久久久久女人精品毛片| 久久久久亚洲AV成人网人人软件 | 国产精品久久久久天天影视| 久久综合久久鬼色| 香蕉久久av一区二区三区| 久久久久国产精品嫩草影院| 亚洲第一极品精品无码久久| 久久精品免费网站网| 97久久超碰成人精品网站| 亚洲国产精品无码久久久秋霞2 | 色综合久久综合网观看| 天天爽天天狠久久久综合麻豆| 亚洲AV伊人久久青青草原|