如何理解C

2021-07-11 15:12:20 字數 998 閱讀 5126

如何理解c++?

面對這個問題,一千個人有一千個哈姆雷特。我也不知道如何理解c++,畢竟我c++程式設計經驗實在是少。

在閱讀effective c++這本書時,條款01:視c++為乙個語言聯邦裡面貌似給出了解釋,但是不知道能不能作為這個問題的答案。

說起c++,大多數人都會和c聯絡起來。誠然,c++是c的超集,c是c++的子集。但是c++和c又是不同的,說他們是兩種不同的語言也不過分。這裡我們就不**二者的區別和聯絡。

以下摘自effective c++條款01:

c++是乙個語言聯邦,這個語言聯邦是由4個次語言組成的。

1 c。說到底c++仍是以c為基礎的。區塊(block),語句(statements),預處理器(preprocessor),內建資料型別(built-in data type),陣列(arrays),指標(pointer)等等統統來自c.許多時候c++對問題的解法其實不過就是較高階的c解法。但是當你以c++內的c成分工作時,高效程式設計守則映照出c語言的侷限:沒有模板(templates),沒有異常(exceptions),沒有過載(overloading)。

2  object-oriented c++。這部分也就是c with classes 所訴求的:classes(包括建構函式和析構函式),封裝(encapsulation),繼承(inheritance),多型(polymorphism),virtual函式(動態繫結).......等等。這一部分是物件導向設計之古典守則在c++上最直接實施。

3 templates c++。這是c++的泛型程式設計(generic programming)部分,也是大多數程式設計師經驗最少的部分。

4 stl。stl是個templates程式庫,看名稱也知道,但它是乙個非常特殊的乙個。他對容器(containers),迭代器(iterators),演算法(algorithms)以及函式物件(function objects)的規約有極佳的緊密配合和協調,然而templates及程式庫也可以其他想法建置出來。stl有自己特殊的辦事方式,當你夥同stl一起工作,你必須遵守它的規約。

如何理解C 委託

一 從下面的例子開始,理解委託變數本質 如上圖,condition是我定義的委託變數。這個委託變數的本質就是位址變數 即c語言當中的指標變數 它儲存的是方法的入口位址。當函式的呼叫者傳遞實參給這個位址變數 方法實際位址 然後執行 到if condition book 時,我們可以這樣形象化理解它 這...

如何理解C 裡面的多型?

同樣的呼叫語句有多種不同的表現形態。1.繼承 2.虛函式重寫 3.父類指標指向子類物件 1 靜態多型 過載,模板 是在編譯的時候,就確定呼叫函式的型別。2 動態多型 覆蓋,虛函式 在執行的時候,才確定呼叫的是哪個函式,動態繫結。執行基類指標指向派生類的物件,並呼叫派生類的函式。虛函式實現原理 虛函式...

如何理解c 委託和事件

有很多同學在學習c 的委託和事件時,都一頭霧水,有的不理解委託和事件到底是什麼東西,有的理解了概念,但不知道在什麼場景中應該應用委託和事件,今天我們就一起總結下委託和事件的知識點 委託 我們先從字面上理解委託,就是將事情託付給別人做,而非自己親自做,自己只負責通知。巨集觀上來看,委託就是一種通知機制...