c 引用另乙個類的變數 C 中的指標和引用

2021-10-17 08:09:43 字數 1372 閱讀 5207

指標和引用算是c++小白很頭痛的點之一了,我自己經常就是看了忘,忘了看,為了省去找資料的時間消耗,痛定思痛決定寫一篇總結,如有不到之處歡迎指出。

在本質上兩者意思相近,都是指向另乙個存在,下面我們來說一說區別。

1.初始化,指標*可以不用賦初值而引用&則必須要賦初值

指標

int a = 10;  

//賦初值 right!!

int *p = &a;

//不賦初值 right!!

int *p;

p = &a;

引用

int a=10;

//賦初值 right!!

int &p=a;

//不賦初值 false!!

int &p;

p=a;

2.重新賦值,指標*可以重新賦值從而指向乙個新的變數而引用&則不可以重新賦值來指向乙個新的變數

指標

int a = 5;

int b = 6;

int *p;

p = &a;

p = &b; //right

引用

int a = 5;

int b = 6;

int &p = a;

int &p = b; //false

3.巢狀使用,指標*可以進行巢狀使用而引用&則不可以巢狀使用

指標

int a = 10;

int *p = a;

int **q = p; //right

引用

int a = 10;

int &p = a;

int &&q = p; //false

以指標為例,宣告方式共有兩種:

int* a

int *a

這兩種實際作用上沒有區別

區別在於同時宣告多個變數時

例:int *a, b, c 只有a是指標,b和c均為int型別

int* a, b, c 和int, double等普通連續宣告變數存在區別,它和上面的寫法一樣只有a是指標,b和c均為int型別,對於初學者來說容易產生誤導。

vc 在乙個類中呼叫另乙個類的變數

有幾個前提條件 1.被引用的變數所在類必須被完整地定義,而不是只有前向宣告 例如只是一行class a 2.被引用的變數必須是引用處可訪問的。也就是說,以下條件至少滿足其中之一 2.1.訪問變數的語句所在的類被宣告為被訪問的變數所在類的友元類 2.2.訪問變數的語句所在的函式被宣告為被訪問變數所在類...

C 中類A的成員變數是另乙個類物件的情況分析

class a a private b b a a c 中類a的成員變數是另乙個類b物件時,在a呼叫建構函式時,會先呼叫b類的建構函式對b物件進行構造。所以,為類物件的成員變數並不必在呼叫類的建構函式中初始化 a a 在建立a類物件的時候,就會預設呼叫b類的建構函式,在b構造的時候,會直接開啟資料庫...

C 乙個類呼叫另乙個類的成員變數 成員函式

有時候,兩個類之間並沒有繼承的關係,但是其中乙個類需要引用另乙個類中的成員變數或者成員函式。怎樣辦到呢?假設已經新建了兩個類a b。class a class b 現在需要在類a的成員函式中呼叫類b的成員變數b nadd b x,使得a nadd與b nadd相加,那麼只需要在類a的.cpp檔案中包...