C 學習筆記(五)

2021-04-13 22:29:14 字數 706 閱讀 7159

今天來學習一下overload——過載;它和override——重寫是有區別的。

通常,自然語言中同乙個詞可以代表多種不同的含義,具體含義要依賴上下文來確定。這就是所謂的一次多義——該詞被過載(overload)了。

在c++中,還有另外乙個因素會使函式名過載:建構函式。因為建構函式的名字預先由類的名字確定,所以看上去只能有惟一乙個建構函式名。但如果我們想用多種方法來建立乙個物件時該怎麼辦呢?因此,函式過載對於允許函式同名是必不可少的。在這種情況下,建構函式是與不同的引數型別一起使用的。

函式過載意味著,我們有兩個庫,他們都有相同名的函式,只要他們的引數列表不同就不會發生衝突。

c++中有乙個很通用的特徵叫做預設引數(default argument)。預設引數就是在使用者呼叫乙個函式時沒有制定引數值而由編譯器插入引數值的引數。因此,f("hello")、f("hi",1)和f("howdy",2,'c')可以用來呼叫同乙個函式。他們也可能用來呼叫三個已過載的函式,但當引數列表相同時,我們希望呼叫同乙個函式來完成相同的操作。

使用預設引數的規則:第一,只有引數列表的後部引數才是可預設的,不可以在乙個預設引數後面又跟乙個非預設的引數。第二,一旦在乙個函式呼叫中開始使用預設引數,那麼這個引數後面的所有引數都必須是預設的。

預設引數只能放在函式宣告中,通常在乙個標頭檔案中。編譯器必須在使用該函式之前知道預設值。 

我對過載和預設引數的學習體會就這麼多,剩下的就是要在coding慢慢品味了。

C 學習筆記五

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

C 學習筆記(五)

1.淺度複製和深度複製 簡單的按照成員副職物件可以通過派生於system.object的memberwiseclone 方法來完成。這是乙個受保護的方法,但很容易在物件上定義乙個呼叫該方法的公共方法。這個方法提供的複製功能稱為淺度複製。因為它沒有考慮引用型別成員。因此,新物件中的引用成員就會指向與源...

c 學習筆記五

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