怎樣完全掌握c 的物件導向部分?

時間 2021-05-29 22:21:45

1樓:扶餘城裡小老二

好問題常見,但有深度的問題不常見。既然我來了,說明你得好好思考一下了。

乙個函式可以對應乙個只有建構函式的class。引數都一樣。你試試效果是不是一樣。

此時這個函式已經跟類掛靠上了。

那乙個模板函式對應的就是乙個模板class建構函式。cpp最新版本設定,可以class提供部分模板,成員函式提供部分模板。

乙個模板class 通過匹配失敗不是錯誤,可以打造出擁有不同行為或者引數的新class。就像std function一樣。

當然了,這些都是小意思。能夠看懂boost 協程2的原始碼,並熟練應用,那可就厲害了。因為協程可以解耦,並且在網路庫中一統江山。

總之,類可以封裝一切。模板類,還可以生成類。如果你願意,你可以用模板類生成模板類……巢狀下去。

這套東西應變能力極強,執行極快,就是編譯慢點。

至於怎麼去學,先得從匹配失敗不是錯誤,巨集函式擷取部分引數,從而允許可變引數開始

2樓:小說讀者

呵呵,這個不是靠看書就能理解的,需要寫程式,看別人寫的程式,看多了,寫多了,就明白了。

另外,推薦一本書,《設計模式》,你要理解這本書,就算OK了。

3樓:李仁

階段一,知道struct裡面可以定義函式,知道v.pushback比pushback(&v)寫起來方便,知道thiscall和虛函式表

階段二,建立抽象思維,學習設計模式並在實際工作中運用階段三,用仿函式,閉包,lamba等取代虛函式階段四,忘掉設計模式,達到無招勝有招的境界。

4樓:

作為有工作經驗的碼農,說點個人感受吧。

面對物件是一種專案開發抽象思維模式,將任何東西都抽象為物件。他有屬性、有方法。

資料結構是一門學科,他可以用面對物件的方法去實現,也可以用面向過程的方法去實現,是一種抽象化的數學模型。

通常來說,某些資料結構設計成乙個物件更好,比如佇列,有佇列內容本身,有出隊入隊,有檢視元素個數等等,是設計為一種佇列物件了。

你也可以設計為一套函式化的方法來實現,不基於物件導向也可以。所以你的問題可能在自己理解上有些偏差。

不知道我這樣說你可能理解。

當你把這兩個搞懂了,後面遇到類似的就會明朗很多。以上~

5樓:kosora曹

說實話,模板比物件導向簡單並且通用,可以先記憶一下模板語法,然後看看能不能寫出泛型冒泡、泛型二分、泛型鍊錶,有了這個基礎,就去刷LeetCode和洛谷

6樓:小蔡蔡

《C++ Primer Plus》淺顯易懂些。

不要求快,要仔細理解。也不要一句不理解就卡住了,後面可能有答案。當然不是所有東西都要理解,有的是規定。實在理解不了就暫且記住。

不要只看書不操作

學C和C 必須掌握的庫有哪些?

對於C語言來說,應當掌握的當然是C語言的標準庫 對於C 語言來說,一定要掌握的是STL,其次是boost 然後就是各取所需,有很多優秀的第三方庫,找到了就直接拿來用,別重複造輪子。乾貨 國外程式設計師整理的 C 資源大全 CSDN.NET iverson ai 我試著回答一下 基礎的STL要會用 後...

Javascript 採用基於原型的物件導向程式設計是出於效能的考慮嗎?

跟效能的關係應該不大。js裡面一切都是物件,類 函式 也是物件,並且都是動態的,任何乙個類都有可能被使用者改動。如果不設計這麼乙個基於prototype的鏈式檢索結構,還能怎麼做?我想不出還有別的好方法可以實現型別系統的同時不損失js的動態靈活性。設想一下js如果使用乙個c 那樣的型別系統,會有多麼...

想要完全掌握金融工程需要哪些學科的哪些教材?

harrisonhk Stochastic Calculus for Finance,Volume I II,Steven E.Shreve 漸近線 進入機構做開發的可能性很小,現在本科沒學理工的都很難,國外讀個MF或許有可能,但是自己玩演算法交易的話還是可以的,現有的平台資料庫就可以用,有點基本的...