小弟想請教一些觀念性的問題,最近遇到一個錯誤是
int i = 1;
int *pi = &i;
const int *& rpci = pi; // error C2440: 'initializing': cannot convert from 'int *' to 'const int *&'
我對這段有段小疑惑,因為下面這段的寫法是合法的
int i = 1;
const int &ci = i;
那為什麼換成constant pointer reference就不行呢?
上網查了一下,有得出下面可能發生的錯誤
const int i = 99;
int *pi;
const int*& rpci = pi; //if pass
rpci = &i;
*pi = 10;
如果允許const int* reference to int*,
那就可以透過pi來修改常數i,所以不給過...
但是我很好奇const int* 是否能reference一個int* ?
這樣在語法上到底合不合法(雖然有隱患)?
因為const int Reference to int實際上是ok的,
所以我懷疑是不是VC++自己把我擋掉的?
麻煩請各位高手指點一下@@ 感謝!