何時使用引用參數

節選自己c++ primer plus 5

使用引用參數的主要原因有兩個:

1.程序員能夠修改調用函數中的數據對象

2.通過傳遞引用而不是整個數據對象,可以提高程序的運行速度

當數據對象較大時(結構和類對象),第二個原因最重要。這些也是使用指針參數的原因。這是有道理的,因爲引用參數實際上是基於指針的代碼的咖一個接口。那麼,什麼時候應使用引用,什麼時候應使用指針呢?什麼時候又應按值傳遞呢?下面是一些指導原則:

對於使用傳遞的值而不作修改的函數:

1.如果數據對象很小,如內置數據類型或小型結構,則按值傳遞

2.如果數據對象是數組,則使用指針,因爲這是唯一的選擇,並將指針聲明爲指向const的指針。

3.如果數據對象是較大的結構,則使用const指針或const引用,以提高程序的效率。這樣可以節省複製結構的時間和空間。

4.如果數據對象 是類對象,則使用const引用。類設計的語義常常要求使用引用,這是c++新增這項特性的主要原因。因此,傳遞類對象參數的標準方式 是引用傳遞。對於修改調用函數中數據的函數。

5.如果數據對象是內置數據類型,則使用指針。如果看到諸如fixit(&x)這樣的代碼(其中x是int型),則很明顯,該函數將修改x.

6.如果數據對象是數組,則只能使用指針。

7.如果數據對象是結構,則使用引用或指針。

8.如果數據對象是類對象,則使用引用。

當然,這只是一些指導原則,很可能有充分的理由做出其他的選擇。例如,對於基本類型,cin使用引用,因此可以使用cin>>n,而不是cin>>&n。

發佈了20 篇原創文章 · 獲贊 12 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章