github上的每日學習 5

2022-03-28 19:38:02 字數 1426 閱讀 1565

函式

一、 引用(&)的理解與使用

眾所周知,函式與主函式之間的值傳遞一直都是十分惱人的,這裡分為單向傳遞和雙向傳遞。

這裡學習了c++中的一種方法實現值傳遞,這就是引用型別。

它的意義是這樣的,舉乙個例子,事先有乙個變數叫a,這是我又把a取乙個名字叫b,這時,a、b其實是乙個儲存空間裡的乙個值,如果當a在主函式裡使用,b在特定函式裡使用,這樣就可以實現值的傳遞(其實也不算傳遞,就是更改而已)。

格式:int &b=a;//a又命名為b

練習的**及結果:

二、 含可變引數的函式

對它的理解,當你在寫乙個函式的時候肯定不會想要只是!!僅僅!!在乙個特定的地方用到它,你希望,啊,比如吧,當你想要乙個函式輸出整個程式不同地方的錯誤反饋時,你提供的給這個函式引數個數不一定相同,這時候你就需要擁有可以變引數個數(長度)的函式,這就是含可變引數函式的乙個應用場景。

實現這種函式主要有兩種方法:

1、 應用initializer_list

當你的所有實參型別相同,可以傳遞乙個名為initializer_list的標準庫型別。這是一種標準庫型別,用於表示某種特定型別的值的陣列,該型別定義在同名的標頭檔案中。

以下截圖是它提供的一些操作:

2、 編寫可變引數的模板。

這是在實參的型別不同時。

三、 內聯函式(inline)

這就是當我們在呼叫簡單函式的時候能夠提高執行效率的機制,是編譯器幫我們實現的。具體的步驟,就是在呼叫簡單函式的時候要涉及到函式體的替換,引數傳遞,控制轉移這些步驟浪費時間,應用inline函式後,就告訴了編譯器,把這簡單的函式直接複製到原函式裡成為它其中的一段**,這樣節省時間。

注意:1、 內聯函式裡不能有迴圈語句和switch語句

2、 對於內聯函式的定義必須在內聯函式第一次被呼叫之前

3、 對內聯函式不能進行異常介面宣告

**練習:

github上的每日學習

1 物件 object 在最初我的理解,比如說定義乙個字元型 char a 2 類 根據學習,我得出類就是,對於一大堆物件,我 程式設計師 抽象總結出來的它們的共同屬性和行為,這就形成了類。3 封裝 如果沒有記錯的話這就是c語言和其他語言的乙個不同點 根據學習,我覺得老師的乙個例子很有趣,比如乙個電...

github上的每日學習 13

c語言沒有學習到的。union 聯合體名稱 這些成員不是同時存在的,意思是任何兩個成員不會同時有效。例子 union mark首先,這個聯合體取成員中佔位元組最大的那個成員為自己的位元組數,如此例子中,這個聯合體的位元組數為四。只能存入grade pass percent 這三個成員中的乙個。如果已...

github上的每日學習 12

兩個類相互引用時,由於類應該先宣告後使用,如果需要在某個類的宣告之前引用該類就應改進行向前引用宣告。向前引用宣告職位程式引入乙個識別符號,但具體宣告在其他地方。例子 注意事項 1 在提供乙個完整的類宣告之前,不能宣告該類的物件,也不能在內聯成員函式中使用該類的物件。2 當時前向引用宣告時,只能使用倍...