麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

學習C++的最大難度

2019-11-17 05:31:05
字體:
供稿:網(wǎng)友

  困難度之一

“C++ 是個難學易用的語言”,這句話相信很多人都心有戚戚。C++的學習難度,一在于語言本身太多的“幕”,另一個就在于 "paradigm shift" (思考模式的移轉(zhuǎn))。

傳統(tǒng)語言如 C, Pascal, Basic, Fortran...,除了模樣看起來稍有不同,基本上都是函式 call 來 call 去,大同小異,很輕易把握。你想做的動作,在 code 中都看得一清二楚。你所看不到的,也不過就是編譯器為你的函式加上用以處理堆疊的一小段碼(PRologue 和 epilogue),這一小段碼基本上做的是 housekeeping 工作,你沒看到也沒有關系,并不影響你對程式邏輯的思考。

C++ 不一樣,C++ 有太多和程式邏輯息息相關的動作是編譯器為我們加上去的。換句話說 C++ 編譯器為我們“加碼”。假如不識清這一節(jié),學習C++ 有如霧里看花,霧非霧,花非花。

編譯器為我們的 C++ 程式加了什么碼呢?很多!物件誕生時 ctor 會被喚起,物件死亡時 dtor 會被喚起,這都是加碼的結(jié)果。ctor 中設定vtpr 和 vtbl,這也是加碼的結(jié)果。new 單一物件時會產(chǎn)生 memory block cookie,new 物件陣列時會產(chǎn)生一個內(nèi)部結(jié)構記錄著 object size 和 class ctor...,這也都是布幕后的工作。可以說,程式碼中看不到而卻必須完成的所有與程式邏輯有關的動作,統(tǒng)統(tǒng)都是 C++ 編譯器加碼后的結(jié)果。

當“繼續(xù)”發(fā)生,整個情況變得稍微復雜起來。“多重繼續(xù)”又更復雜一些,“虛擬繼續(xù)”又再更復雜一些。

這些布幕后的主題,統(tǒng)可歸類為所謂的 C++ object model(物件模型)。假如不知道這些底層機制,你就只能夠把 "make destrUCtors virtual in base classes"或 "never treat arrays polymorphically"這類規(guī)則硬背下來,卻不明白它的道理。用一樣東西,卻不明白它的道理,林語堂如是說:“不高明”。只知道 how,不知道 why。

困難度之二

C++ 的第二個學習難度在于 "paradigm shift"(思考模式的移轉(zhuǎn))。別說自己設計classes 了,光使用別人的classes,就都是一種思考模式和行為模式的移轉(zhuǎn)。MFC(或 OWL 或 VCL)programmer 必然能夠領略并體會其中的意思。

使用所謂的 application framework(一種大型的、凝聚性強的、有著物件導向公共基礎建設的 class library),你的碼和 framework 之間究竟是怎樣的關系呢?framework 提供的一大堆可改寫的虛擬函式的意義與價值究竟在哪里呢?為什么 framework 所設計的種種美好性質(zhì)以及各式各樣的演算法竟然可以施行于我們自己設計的 class types 身上呢?framework 被設計時,也并不知道我們的存在。這正是物件導向中的多型(polymorphism)的威力。

稍早所說的 C++ 物件模型,偏屬程式設計的低層面;這里所說的思考模式移轉(zhuǎn),則是程式設計的高層面。能夠把新思維模式的威力發(fā)揮得最淋漓盡致的,當推物件導向的 polymorphism(多型)和 generalization(泛型)。假如你沒有使用這兩項特性,等于入 C++ 寶山卻空手而歸。

反覆磨煉,循環(huán)震蕩

想像 C++ 是一把用來解決程式問題的刀,要它堅軔,要它鋒利,就必須經(jīng)過多次的回火,在高熱和驟冷之間——煉。

初學 C++ 語法(syntax)之后,你應該盡快嘗試體驗 polymorphism(大致而言也就是虛擬函式的運用)。等到對 OOP 的精神有了大局掌控的能力,但對 C++ 的許多小細節(jié)不甚清楚,就是回到C++ 物件模型 煉的時機。

成長,是在高階(polymorphism)和低階(object model)之間反覆震蕩,才能夠震蕩到更高的位階,而不是平平庸庸于中階(C++ syntax)的一灘死水。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品国产亚洲7777 | 国产午夜精品一区二区三区免费 | 日韩午夜一区二区三区 | 91精品国产91久久久 | 依人在线视频 | 国产午夜精品一区二区三区视频 | 成人国产精品一区二区毛片在线 | 久久精品久久精品国产大片 | 免费观看一级 | 日韩午夜一区二区三区 | 久久久成人精品视频 | 在线观看中文字幕国产 | 免费久久精品 | 日本精品免费观看 | 日韩每日更新 | 鸳鸯谱在线观看高清 | 性大片免费看 | 精品国产一区二区三区久久久狼牙 | 亚洲电影在线播放 | 草草在线观看 | 国产一级一片免费播放 | 一级黄色性感片 | 色无极影院亚洲 | 久久久精品视频网站 | 99精品国产小情侣高潮露脸在线 | 免费a视频在线观看 | 国产精品久久久久久久久久久久久久久久 | 国产成人精品视频在线 | 日日爱影院 | 久久网站热最新地址 | 欧美亚洲国产一区二区三区 | 欧美日韩精品一区二区三区不卡 | 午夜在线观看视频网站 | 深夜免费视频 | 亚洲精品成人av在线 | 亚洲不卡 | 末成年女av片一区二区 | 成人三级免费电影 | 又黄又爽免费无遮挡在线观看 | 久久久久久久久久美女 | 精精国产xxxx视频在线播放7 |