C++中不允許定義引用數組

首先,什麼叫引用數組?顧名思義,就是一個數組,這個數組的每一個元素是一個引用。


其次,C++中引用的本質是一個指針常量,編譯過程中使用常指針作爲引用的內部實現。

int a;
int * const p = &a;
int &r = a; 
可以這樣理解  p 和 r 除了語法之外,其實質是完全等價的。
另外:常量在定義時必須初始化,那麼引用在定義時也同樣必須初始化。


ok,切入正題,C++對數組的初始化方法,沒有額外的定義,而是沿用了C語言的初始化方式。

鑑於以上,我們可以有如下分析

int a[]={1,2,3};

int *p[]={a,a+2,a+2};

在C++中可以使用拷貝構造,也就是用初始化列表中的值,拷貝構造數組中的元素,拷貝構造的形式:T::T(const T&);

另外C++中不允許定義引用的引用,所以括號內的T不能是引用類型,因此就不允許定義引用的數組。


那麼C++中爲什麼不允許定義引用的引用?


能否用 常指針數組 來實現"引用數組"這個需求了.如何實現?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章