最近學了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,它對程式中的元素進行標註,如型...