C 和C 語法學習後的總結

2021-09-25 10:29:47 字數 1166 閱讀 7970

經過這幾個月的學習,在這裡做個總結。最先開始是重新學習c++的語法,接下來學習c#,c#的語法和c++很相似,c#沒有指標,不支援多繼承,但可以繼承多個介面,算是彌補不能多重繼承類,c#中全部都是類封裝起來,沒有單獨的變數或函式,main()函式也是在乙個類中。以下是具體的總結:

1、c++方面(這裡我只講訴對於我之前沒完全掌握的東西,略微凌亂)

1)過載:有函式過載和運算子過載,都是根據變數的數量或者型別不同而呼叫不同的行為。實現「一詞多用」,減少相似功能編寫帶來的重複命名問題。

2)字串:字串型別,現在字串連線或比較也可以通過熟悉的運算法則進行計算,減小了在c語言裡面進行乙個個字元的操作帶來的麻煩。也是靠過載實現。

3)引用:功能可以理解為指標的兄弟,和指標的功能很相似。(引用為變數起乙個別名,共用同一位址,當使用引用作為函式引數,可以擴充函式傳遞資料的功能)如:void max(int &a , int &b)

4)類:類是最關鍵的。類相對c語言中的結構體顯得更加豐富,其中有變數和方法,加上繼承關係,可以把現實的事物屬性、事物與事物之間的關係描述得更具體。類可以看成乙個虛擬抽象的事物,但結構體還只是事物的一些片面的資料。在c#中全是類,把一些檔案與檔案之間都是以類為個體進行交流。

5)繼承關係:總之理解優先順序 :private>protected>public

6)多型性:發同一指令,子類執行不同的功能。多型性是要結合抽象類或介面來實現,抽象類只宣告不定義相應的行為方法,各子類通過繼承父類,根據自己屬性來定義實現不同的函式功能。實現多型方法為:子類賦值給父類,通過父類呼叫相應的抽象方法來實現多型功能,使同乙個函式名在各不同的子類根據自己的特性實現不同的功能(多型)。在c#中也可以通過繼承介面來實現多型。

2、c#方面:

1)事件:通過委託作為管理機制,當觸發時呼叫相應的在委託中註冊的事件處理函式。這裡我把它理解為微控制器裡面的「外部中斷」。

2)多型:通過抽象類或者介面實現多型。書上的一句話:門(抽象類)定義了你是什麼,介面(鎖)規定了你能做什麼。

這裡對於抽象類和介面的理解的話,我理解為抽象類雖然包含了抽象函式,但是它還是乙個抽象的個體事物,其可以包含其他屬性;而介面只是一些抽象函式的集合體,為c#不能多重繼承而服務,它並不是乙個個體事物。(個人理解,可能不恰當)

由於 c#只支援單繼承,想要繼承更多的函式功能,因此可以繼承多個介面。

c 語法學習

迴圈和關係表示式 for迴圈 表示式和語句 遞增和遞減,字首式效率更高 組合賦值操作符 復合語句 逗號操作符 關係操作符,和 while迴圈 typedef工具 dowhile迴圈 get 字元輸入方法 檔案尾條件 巢狀迴圈和二維數值 strcmp a,b 判斷兩個字串是否相等 cin如何處理字元輸...

C 基礎語法學習

基本用語區分 解決方案和專案 解決一類問題的方案。比如要建一套房子是不是要有一套解決方案,那是不是要把該方案分解成幾個小專案,如設計,裝修,水電安裝,材料運輸等專案 c 和.net net 是一種平台一種技術,裡面包含著乙個非常大的 庫 可以模擬成 jvm c 是一種語言,我們可以使用c 去呼叫.n...

C 語法學習(6)

1.函式重寫 在子類中定義與父類中原型相同的函式 函式重寫只發生在父類與子類之間 過載與重寫區別 過載 同乙個作用域 子類無法過載父類函式,父類同名函式將被覆蓋 過載是在編譯期間根據引數型別和個數決定 重寫 發生於父類 子類之間 父類和子類函式有相同的函式原型 使用virtual關鍵字宣告後能夠產生...