C 學習之語法

2021-06-19 14:26:45 字數 1190 閱讀 2946

最近學了c#,以前在單位用的是c/c++.由於客戶的程式是c#寫的,所以順便學習了一下。

從這次的程式中學到的東西:

對物件導向程式設計的概念有了更深入的了解,以前在單位都是api/win32程式設計,很少用到物件導向的程式設計,一般都是面向過程程式設計.

我記得的幾個關鍵字:

1.封裝 

封裝就是資料資料的集合,體現在結構或者類裡面

封裝可以隱藏實現細節,使得**模組化.

2.繼承

主要目的是為了便於移植程式以及使整個程式更加清楚.

擴充套件已存在的**類,使得**可以重新使用。

3.多型

多重形態,一般指子類繼承父類時現實出不同的形態.

子類和可以重寫父類中的虛函式。

多型是為了介面重新使用。

1.早繫結

就是過載的時候函式名稱和位址早已由編譯器搞定  類似

str_func  和int_func  雖然表面上兩個函式的名稱相同,但引數乙個是int,乙個是string.

其實對於編譯器來說兩個函式名稱是不同的。函式的繫結在編譯期間確定。

2.晚繫結

晚繫結其實就是指對於編譯器來說名稱是相同的,因為覆蓋/重寫的時候不僅函式的名稱相同,

而且連函式的引數也相同。唯一不同的就是函式的內容。

4.過載/覆蓋(重寫)

過載和覆蓋最大差別是引數不同(個數,順序,型別),

覆蓋即重寫,是針對於函式內容來說的,其它方面均不能改變。只是函式的內容變了。

過載的不僅函式內容改變了,連函式引數也變化了。

兩者的相同之處就是函式的名稱相同!

5.虛函式

在基類/父類裡面被宣告,在子類中被重新定義的成員函式。

virtual  void funa(){};

* 必須是非靜態函式

使用的時候: 基類 cbase  cb,   cch1 cc1,  cch2 cc2

cb=cc1;

cb=cc2;

基類指標指向派生類指標能夠訪問在派生類中被重新定義的虛函式。

純虛函式:

6:this 指標

c之基本語法

我們已經看過 c 程式的基本結構,這將有助於我們理解 c 語言的其他基本的構建塊。c 程式由各種令牌組成,令牌可以是關鍵字 識別符號 常量 字串值,或者是乙個符號。例如,下面的 c 語句包括五個令牌 printf hello,world n 這五個令牌分別是 printf hello,world n...

C 語法之擴充套件

擴充套件方法使你能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。這是msdn的描述。上面幾句我看好多部落格都是這樣開頭的。所以我也這樣開頭。一 為什麼要有擴充套件方法?開頭也說了,無...

C 語法之特性

在專案中經常可以看到在類屬性上面有乙個的東西,今天講的東西就是它,它英文名是attribute,中文名是特性。一 什麼是特性?首先,我們肯定attribute是乙個類,下面是msdn文件對它的描述 公共語言執行時允許你新增類似關鍵字的描述宣告,叫做attributes,它對程式中的元素進行標註,如型...