C C 高階語法 引用

2021-07-06 10:34:24 字數 2242 閱讀 3232

引用就是物件的另乙個名字。在實際程式中,引用主要用作函式的形參。引用是一種復合型別,通過在變數名前新增&符號來定義。

引用必須用與該引用同型別的物件初始化。

int   var = 12;

int &num = var;//沒問題,將int型的引用指向int型的物件

char &ch = var; //錯誤,char型別的物件不能指向int型的物件

char &chnew; //錯誤,引用一經定義必須初始化

當引用初始化之後,只要改引用存在,它就保持繫結到初始化時指向的物件,不可能將引用繫結到另乙個物件.   

int var = 12; //定義乙個int型的物件

int &num = var; //將num指向var,此時num只是var的別名

num = 14; //修改num的值,此時也就是直接修改var的值,此時var = 14

int data = 23;

num = data;//你進行此舉或許是想將num指向data,但是不能達到你想要的效果。該語句就是講data的拷貝賦值給num,也就是將data的拷貝賦值給var,此時var = 23.

4、引用在實際中的作用就是和函式結合起來,首先看一下引用做函式引數。

void swap(int &,int &);
這是每個教材上都會講到的,確實,引用在函式中差不多就是這樣用的。

#include using namespace std;

void swapref(int &lhr,int& rhr)

void swapcopy(int lho,int rho)

int main()

//析構函式

~teacher();

//拷貝建構函式

teacher(const teacher &m_teacher);

//賦值操作符

teacher& operator = (const teacher &m_teacher);

//輸出操作符過載

friend ostream & operator<

void setname(const char* pch)

void setincom(const double &db_income)

void setaddress(const string &str)

};teacher::teacher(const teacher &m_teacher)

}teacher& teacher::operator=(const teacher &m_teacher)

}return *this;

}ostream& operator<

}int main()

void setaddress(const string &str)

函式返回引用:

teacher& operator = (const teacher &m_teacher);
我們使用引用,主要是避免了物件的賦值,這節省了不少的程式執行速度和記憶體開銷,所以我們在程式中盡量使用返回引用,而不是返回乙份物件的拷貝。

在函式返回引用時,千萬不要返回臨時物件的引用。因為在函式返回時,臨時物件銷毀,返回引用會使得物件指向乙個不存在的物件,造成程式的崩潰。

如下所示:

int &getdata(const int &num)

temp 時函式內部的臨時物件,函式在返回時temp已經銷毀,若使用:int data = getdata(5);則程式會報錯,因為data引用乙個不存在的物件。我們在書寫程式的時候一定要   避免。

#include using namespace std;

void setarray(int (&array)[10])

}void printarray(const int (&array)[10])

{ for(int i=0;i<10;i++)

cout<

程式執行的結果:

這裡把陣列的引用拿出來是想告訴陣列的引用是如何實現的,實際上並沒有多難。

C C 高階語法 函式指標及其應用

int getdata int num 形如上面的形式的為指標函式,指標函式實際上就是函式,只是返回型別為指標。在 結構體的深度拷貝中 createat 函式便是乙個指標函式,用來得到結構體物件。這種用法很普遍 基本上是這麼用的 我們在打下基礎的時候要把這一點給掌握好了。之前說過陣列是一種型別,其形...

C C 引用介紹

引用簡介引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引用,即別名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別符號是指目標變數的型別。3 宣告引...

C C 程式設計 引用

問 什麼是引用 引用就是給物件起別名 int ival 1024 int refval ival refval就是ival的別名 int refval2 錯誤 引用必須被初始化 int refval3 refval ok refval3實際上繫結在了ival上 int jval refval ok ...