对于 C++ 中引用的处理方式,我不太明白:
B objB = B(); // Regular B object
const B &refConstObjB = objB; // Reference to const B object
B* ptrB = new B(); // Regular pointer to B
B* const &refPtrConstB = ptrB; // Reference to const pointer to B
以上所有编译都很好。但是以下不是:
const B* &refConstPtrB = ptrB; // Reference to pointer to const B
考虑到对象和指针都被声明为非常量,为什么我可以将对象作为 const 对象引用,但不能对指针做同样的事情?
最佳答案
请注意:const
引用不暗示const
对象。
它只是表示通过该引用只读 的对象。因此,无论对象是否为 const
,您都可以拥有指向它的只读引用或指针。
现在,如果您提到的内容被允许,您可以说refConstPtrB = pointer_to_some_const_B
,然后通过ptrB
改变那个对象,这将违反了指针目标的 const
特性。
关于c++ - 在 C++ 中引用 const 对象/指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021906/