隨著時間的流逝到了三月底,被C++的類的面向對象摧殘了近一個月,漸漸的上手了,語法也逐步形成,隨手可以用類來完成基礎的數學或者邏輯問題,把這些對象搞清楚了,相信過些時用C++寫數據結構的鏈表和二叉樹也很容易搞定了,現在的工作就是收尾了,也就是C++快大功告成了,剩下的就是泛型編程和C++的工具了,不過這也只是C++部分,后面的MFC、VC、UC才是真正的挑戰,C++只是打基礎而已,最難的都說是MFC,因為據說很糾結,有的人把它叫做麻煩C,一開始就去拖控件,啥玩意,我目前還是不了解啊,慢慢來吧,VC,UC稍微看起來簡單一些,不過系統不一樣,一個是在windows下操作的,另一個是在Linux下操作的,好了不管那么多了,過些時再來慢慢料理,一口吃不了那么多,得慢慢的啃。
說起C++的類部分,剛開始真沒頭緒,可能是思維沒跟上吧,對象老出錯,加上對象指針后,更加的混亂,不愧是C++的重頭戲,果然好戲在后頭!第一步接觸類最熟悉的就是class、公有的public、私有的private和初始化的各種構造函數、成員函數,至于說保護的protected在很后面才開始接觸,因為涉及到類的繼承,類都沒學好,根本就無法去學繼承和多態。總的來說類和C的結構體很相似,但是擴展了很多功能,結構體原本就是公有的類,所有類外的對象都可以使用它的成員或者是成員函數,現在多了私有的private,也就是說類外的對象無法使用這個類的私有成員,只能通過這個類的公有成員函數來調用私有部分的元素,因此這樣就有了安全的封裝性,而構造函數一般用來初始化類的各種成員。
初步掌握類后第二步就開始接觸友元、this指針和析構函數了,友元就是好基友,關鍵字friend嘛,友元可以用來做友元類和友元函數使用,本來一個類私有成員在類外是無法使用的,就像是陌生人無法使用主人家的東西一樣,可是有了友元friend就可以大膽的使用了,不過好基友并不是很好,因為它破壞了私有原本的安全性。this指針呢,說穿了就是類的本身指針,也就是這個類的首地址,剛開始用它還真是不習慣啊,不過用多了就好了。還有析構函數的用途就是毀滅對象,和初始化的構造函數相反,如果說構造函數是建房子的,那么它就是拆房子,而且是先拆最后創建的,這一點和拆樓房一樣,果斷的就是一個活生生的堆棧。
接著第三步就是運算符重載,一個符號可以代替唧唧歪歪的描述了,不管是代碼也好,還是輸出輸入IO也好,所以說這個東西很強大,能夠省略一大波描述,基本上所有的運算符都可以用來使用代表一大串話,這一點有點像宏定義,比如一個輸入的運算符重載ostream& operator<<(ostream& output,Class& c),(PS: ostream是輸出端口,output是輸出端口的名字,operator是運算符重載的關鍵字) 通過自己隨心所欲的描述之后,以后只要用到‘<<’加類的類名就等于輸出你想要的各種結果。不僅如此還能通過它運算各種有規律的計算,比如計算兩個虛數只用一個'+'就行了,而原來的加號只能用于兩個實數相加,通過重載后就可以計算虛數了,再比如可以計算矩陣、圖形、英文字母、各種大算法,所以也經常用,比如一個加法的運算符重載 Class& operator+(Class& c1,Class& c2)就是可以把兩個類c1,c2通過自己各種規則或者不規則的手段相加,加的規則自己定,甚至可以定為相減,相乘等,于是變成類似3+2=1的情況,不過這個只有奇葩才寫成這樣不靠譜的東西。
終于到了類的高級部分,也是我目前正在完成的部分,第四步就是類的繼承和派生,繼承就像是人一代代的傳承下去,下一代遺傳上一代的一部分基因,類也如此,也有父母和子女,不過它們名字是父類和子類,不過一般還是叫基類和派生類,類繼承方式有三種,公有繼承、私有繼承和保護繼承,不管怎么樣,通過不同的繼承方式可以繼承上一代的不同的基因,而保護protected這個時候就開始有作用了,子類可以用父類的保護成員和保護成員函數,相當于兒子可以使用父親的東西一樣,而外人是無法使用的。第五步就開始接觸多態和虛函數了,目前還在學習當中,雖然了解了很多,但還是需要深入的了解才行。總體來說這兩步整合起來就是面向對象的高級部分。
好了C++剩下就是第四部分面向對象高級篇和泛型編程篇了, 在四月份打好這場決戰!有個好的收尾才有新的開始,最近發現一個謬論,從游戲角度出發,發現有三個主流方向,把C++當作攻擊魔法系為主的魔法師職業,數據結構相當于輔助回復系僧侶職業,兩者掌握完全后轉職成為魔法全知的賢者職業,相當于做算法的。而工具性的東西就是非魔法型的職業,可以比如戰士等于數據庫Oracle,武術家等于win32,加起來的進階職業戰斗大師等于MFC,另一個方向 盜賊等于SQL,弓箭手等于Unix,加起來的進階職業游俠等于UC。總結了幾個游戲然后和這些東西關聯起來產生得到的結果,所以一個職業一個職業的玩,修煉好了轉職換個職業,直到所有職業修滿為止,這也是我玩RPG的一貫習慣,所以每次玩RPG都會很累,累的是練級!
|