1、什麼是引用?如何使用引用?為什麼要使用引用?
1)什麼是引用?
引用變數是一種偽裝指標,它允許為變數建立別名(另乙個名稱)。
在初始化乙個引用變數時,必須對其進行初始化。
2)何時使用引用?
引用變數主要被用作處理結構和類物件的函式的引數。
3)為什麼要使用引用?
4)返回引用時的注意事項
2、什麼時候應使用引用?什麼時候應使用指標?什麼時候又應按值傳遞呢?
對於使用傳遞的值而不作修改的函式:
如果資料物件很小,如內建資料型別或小型結構,則按值傳遞。
如果資料物件是陣列,則使用指標,因為這是唯一的選擇,並將指標宣告為指向const的指標。
如果資料物件是較大的物件,則使用const指標或const引用,以提高程式的效率。這樣可以節省複製結構所需的時間和空間
如果資料物件是類物件,則使用const引用。傳遞類物件引數的標準方式是按引用傳遞。
對於修改呼叫函式中資料的函式:
如果資料物件是內建資料型別,則使用引用。如fixit(&x),其中x是int型,則很明顯,該函式將修改x
如果資料物件是陣列,則只能使用指標
如果資料物件是結構,則使用引用或指標。
如果資料物件是類物件,則使用引用。
即,資料物件為內建資料型別時,若引數不能被修改,則使用按值傳遞;若要修改引數,則使用引用。
資料物件是陣列時,只能使用指標。
資料物件是較大的物件或結構,則可以使用指標或引用。
資料物件是類物件,則使用引用。
3、#ifndef mytime0_h
#define mytime0_h
class time
;#endif // mytime0_h
#include#include"mytime0.h"
time::time()
time::time(int h, int m)
void time::addmin(int m)
void time::addhr(int h)
void time::reset(int h, int m)
time time::sum(const time &t) const
void time::show()const
{ std::cout<#include"mytime0.h"
int main()
{ using std::cout;
using std::endl;
time planning;
time coding(2,40);
time fixing(5,55);
time total;
cout<<"planning time = ";
planning.show();
cout《將引數宣告為引用的目的的提高效率。返回物件將建立物件的拷貝,而呼叫函式可以使用它。
如果返回型別為time &,則引用的將是sum物件。但由於sum物件是區域性變數,在函式結束時將被刪除,因此引用將指向乙個不存在的物件。然而,使用time返回型別意味著程式將在刪除sum之前構造它的拷貝,呼叫函式將得到該拷貝。
注意:不要返回指向區域性變數或臨時物件的引用。函式執行完畢後,區域性變數和臨時物件將消失,引用將指向不存在的資料。
何時使用引用引數
節選自己c primer plus 5 使用引用引數的主要原因有兩個 1.程式設計師能夠修改呼叫函式中的資料物件 2.通過傳遞引用而不是整個資料物件,可以提高程式的執行速度 當資料物件較大時 結構和類物件 第二個原因最重要。這些也是使用指標引數的原因。這是有道理的,因為引用引數實際上是基於指標的 的...
java引數傳值 傳引用
1 結論 2 傳值和傳引用區別 例項1 傳值 void method1 7 void method2 13 voidchange1 stringbuffer sb 17 voidchange2 stringbuffer sb 呼叫method1 螢幕列印結果為 helloworld 呼叫method...
Python按值傳遞引數和按引用傳遞引數
python按值傳遞引數和按引用傳遞引數 按值傳遞引數 使用乙個變數的值 數字,字串 放到實參的位置上 注 傳遞過去的是變數的副本,無論副本在函式中怎麼變,變數的值都不變 傳遞常量 傳遞常量 定義乙個函式,輸出 歡迎,接收到的引數 name defhuanying name print 歡迎 nam...