[问题] C++ constant reference的小疑问

楼主: jamod (jasper)   2016-08-09 10:33:02
小弟想请教一些观念性的问题,最近遇到一个错误是
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++自己把我挡掉的?
麻烦请各位高手指点一下@@ 感谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com