C 學習筆記(五)

2021-07-05 10:56:43 字數 938 閱讀 2455

1. 淺度複製和深度複製

簡單的按照成員副職物件可以通過派生於system.object的memberwiseclone()方法來完成。這是乙個受保護的方法,但很容易在物件上定義乙個呼叫該方法的公共方法。這個方法提供的複製功能稱為淺度複製。因為它沒有考慮引用型別成員。因此,新物件中的引用成員就會指向與源物件中相同的成員物件,在許多情況下這並不理想。如果 要建立成員的新例項(複製值而不複製引用),此時需要使用深度複製。

3. 方法定義中使用的關鍵字

virtual:方法可以重寫

abstract:方法必須在非抽象的派生類中重寫(只用於抽象類中)

override:方法重寫了乙個基類方法(如果方法被重寫,就必須使用該關鍵字)

extern:方法定義放在其他地方

4. 介面的定義與類的定義不一樣的地方

5. 部分類、部分方法partial

6. 封箱和拆箱

封箱是把值型別轉換為system.object型別,或者轉換為由值型別實現的介面型別。拆箱是相反的過程。

7. 轉換

(1) 過載運算子

隱式轉換

convclass1 op1 = new convclass1();

convclass2 op2 = op1;

顯式轉換

convclass1 op1 = new convclass1();

convclass2 op2 = (convclass2)op1;

(2)as運算子

使用下面的語法,把一種值型別轉換為指定的引用型別

as 這只適用於下列情況

的型別是型別

可以隱式轉換為

可以封箱到型別中

如果不能從轉換為,表示式的結果為null

C 學習筆記(五)

今天來學習一下overload 過載 它和override 重寫是有區別的。通常,自然語言中同乙個詞可以代表多種不同的含義,具體含義要依賴上下文來確定。這就是所謂的一次多義 該詞被過載 overload 了。在c 中,還有另外乙個因素會使函式名過載 建構函式。因為建構函式的名字預先由類的名字確定,所...

C 學習筆記五

18 1 物件指標做函式引數 a.物件指標和物件引用 b.陣列 c.常型別 d.子物件和對物件 優點 a.實現傳址呼叫。可在被呼叫函式中改變呼叫函式的引數物件的值,實現函式之間的資訊傳遞 b.使用物件指標實參僅將物件的位址值傳遞給形參,而不是進行副本的拷貝,這樣可以提高運 行效率,減少時間開銷 in...

c 學習筆記五

while do while for迴圈 迴圈和變時作用域 跳過迴圈迭代 continue 迴圈的中斷 break 第六章 陣列和字串 1 陣列的定義 double tempertures 366 避免幻數 可以宣告一下陣列的大小 初始化陣列 int sample 初始化陣列的大小 int samp...