C++ Prime學習過程中的細節摘記(三)

來源:互聯網
上載者:User

最近在學C++,在看C++ Prime(第三版)的過程中把一些零星的知識點記了下來,主要是一些細節問題,便於以後回過頭來查閱和鞏固。


 

1.函數

1.1函數參數傳遞:

C++的函數參數傳遞是值傳遞的,但是按值傳遞在一些情況下不是很適合

1.當大型類對象必須作為參數傳遞時,指派至需要拷貝,需要很大的開銷

2.當實參必須要被修改時

此時需要用指標或引用作為參數傳遞給函數

        

指標

引用

1.指標作為函數參數時,指標可以指向一系列不同的對象,也可以什麼都不指向。

2.函數在沒有確定指標是否指向一個有效對象之前不能安全的解引用

 

1.引用作為函數參數時,引用必須被初始化為指向一個對象,一旦初始化,就不能再指向其它的對象。

2.對於引用作為函數參數時,不必考慮它是否指向一個對象,因為引用必須指向一個對象

3.引用可以在函數的重載中使用法更加直觀

 

 

1.1.1指標和引用參數的區別

 

 

1.1.2數組參數

1.數組在傳遞時是傳遞指標的,為了避免實參被修改,可以再聲明形參時聲明為const類型

2.在傳遞數組參數時由於傳遞的是第一個元素的地址,沒有包含傳遞的數組的長度,函數不會檢查數組的長度

3.為了是傳遞的數組可以進行數組長度的檢查,可以將參數聲明為數組的引用。當參數為數組的引用時,實際上參數包含了數組的長度,

4.編譯器會檢查數組參數的長度

 

1.1.3抽象容器型別參數

1.對於抽象容器類型的參數,如果是值傳遞,需要對容器中的所有元素進行拷貝,效率太低。

2.可以考慮用指標或引用作為參數,如果不希望實參被修改,可以聲明為const類型

 

1.1.4預設實參

1.在函式宣告的時候可以聲明預設的實參,如果有參數傳遞,則會覆蓋對應位置的預設參數

2.函數調用的實參按位置解析,預設實參只能用來替換函數調用缺少的尾部實參,所以在左邊

3.參數的任何預設參數被提供之前,最右邊未初始化參數必須被提供預設參數。即預設實參是從右往左進行指定的

4.一個參數只能在一個檔案中被指定一次預設實參,所以一般預設實參在函式宣告中被指定

 

 1.1.5省略符號

有時候我們無法列出傳遞給函數的所有實參的數目和類型,這是我們可以用省略符號代替函數參數表

 

1.2 inline函數

1.內嵌函式的展開由編譯器決定,對於遞迴函式,只在第一次調用的時候展開。

2.內嵌函式一般用在頻繁調用的函數,並且函數規模不大的情況下。

3.內嵌函式如果出現在多個檔案中,需要在每個檔案進行定義,可以在標頭檔中定義,然後在需要的時候include進去

 

1.3指向函數的指標

1.函數名=&函數名

2.指向函數的指標可以在不解引用的情況下使用

3.指向函數的指標不支援類型轉換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.