C 的一些定義理解

2021-04-18 05:58:00 字數 2047 閱讀 2081

1、介面:所謂介面,可以理解成一種協議和標準。它提供給繼承他的所有的類乙個標準(比如說:屬性、方法返回值、引數等),這樣可以簡化**,程式可擴張性提高。

用法:乙個方法如果需要引用到某些類做引數,而這些類的返回結果都一樣,只是實現方法不同,傳統的用法是用方法過載(引數不同,也就是各個類作為不同的引數引進),但是如果這些類都繼承實現了某乙個介面的話,只要把引用這些類的引數換成這個介面就行,要用到具體哪個類再用 「介面=new 類」 例項化就行了

2、類裡面的屬性和字段的區別:類裡面的字段可以理解成類裡面的區域性變數,也就是類裡面的方法需要用到的傳值等操作的變數(外部直接操作安全性降低),屬性可以理解成為用來描述類的一些特徵的特殊「字段(相當於值)」,它的出現,可以通過外部賦值動態改變類裡面欄位的值,也就是區域性變數,這樣類相當於外界來說就可以成為動態的;

屬性是邏輯字段,有更強的控制性;屬性是字段的擴充套件,源於字段;屬性不直接對應於儲存位置,於屬性只是將字段包裝起來,所以屬性並不占用實際的記憶體,真正佔記憶體位置及空間的是字段。簡單地說:屬性是被外部使用的,欄位是被內部使用的

3、宣告於定義的區別:宣告不為變數分配空間,而定義為變數分配空間,因此同乙個變數的宣告可以出現多次,而只能定義一次。 (在c中函式的宣告是可以重複的,但是變數卻不可以。對於變數的宣告都會分配記憶體空間,只是這部分記憶體空間裡存放的是隨機值,直到被定義之後將賦予相應的值。);宣告變數一般是全域性函式裡面的變數,而定義變數可以是全域性變數,也可以是區域性變數;宣告變數就是說明乙個變數,它的型別,名字等,而定義乙個變數則還要對它進行初始化。

4、委託(**)的概念:一般來說,方法是不可以用來做引數的,但是因為有了委託這個機制,方法就可以用來做乙個類的特殊引數(簡單地說,帶方法引數的類就可以構成委託,這是委託的特徵);委託是把乙個類中的方法經過封裝後可以供別的類來呼叫(一般方法都是自身類呼叫),靜態方法和例項方法都可以傳送,這跟c++中用函式指標傳遞函式同理。通過委託,使類中的方法成為乙個常量進行傳遞)

委託需要4個步驟:

(1)定義乙個輸入引數與要進行封裝的方法完全相同的**物件。

public

delegate

void greetingdelegate(string name);//定義委託,它定義了可以代表的方法的型別

(2)定義所有輸入引數與在第1步中定義的**物件相同的方法。

public

void englishgreeting(string name)

public

void chinesegreeting(string name)

(3)建立**物件,並與希望封裝的方法進行連線。 (多形式)

3.1greetingdelegate delegate1 = new

greetingdelegate(englishgreeting);//直接用建構函式連線方法

delegate1 += chinesegreeting;   // 給此委託變數再繫結乙個方法

3.2greetingdelegate delegate1 = new

greetingdelegate();

delegate1 = englishgreeting;   //賦值連線方法

delegate1 += chinesegreeting;   // 給此委託變數再繫結乙個方法

3.3//隱式連線

private static void greetpeople(string name, greetingdelegate makegreeting) //要呼叫委託的地方

static void main(string args)

(4)通過**物件呼叫封裝的方法。(多形式)

private static void greetpeople(string name, greetingdelegate makegreeting) //要呼叫委託的地方

!注意:被連線方法的實際引數在程式呼叫委託的時候提供

4.1//顯式通過委託呼叫

static

void main(string args)

4.2//隱式繞過委託呼叫

static void main(string args)

關於巨集定義的一些理解

以前也聽說過巨集,但是沒有引起重視,現在看到什麼巨集之類的,感覺很是高深,於是查詢資料n久,算是對其乙個大致的了解。巨集定義是c提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯。1.不帶引數 巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字...

C 中的一些定義

ps 這篇部落格用來記錄一些一般的c 書中草草掠過的一些概念。或者一些不太容易理解的概念的詳細解釋。歡迎新手進入,歡迎高手指正!orz 引用 為物件起了另外乙個名字,引用型別引用 refers to 另外一種型別。int ival 1024 int refval ival int i 報錯。一般在初...

c指標的一些理解

c語言所有複雜的指標宣告,都是由各種宣告巢狀構成的。如何解讀複雜指標宣告呢?右左法則是乙個既著名又常用的方法。不過,右左法則其實並不是c標準裡面的內容,它是從c標準的宣告規定中歸納出來的方法。c標準的宣告規則,是用來解決如何建立宣告的,而右左法則是用來解決如何辯識乙個宣告的,兩者可以說是相反的。右左...