c++ - 在 C++ 中引用 const 对象/指针

标签 c++ pointers reference constants

对于 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/

相关文章:

c - C中初学者电话簿应用程序的奇怪输出

c++ - Firebreath C++一些指针的理解

java - JNI : Overhead of holding Java object references within the native code?

c++ - 如何将使用 MFC 的类添加到 ATL 项目中?

c++ - 为什么这个 if 条件无法比较负整数和正整数

c - 在 C 中传递结构

c++ - 声明指针/引用变量的首选方式?

javascript - Visual Studio IIS 工作正常,但在 IIS 7 脚本中托管时获取错误的 URL?

c++ - mem_fun_ref 麻烦

c++ - libCURL 不遵循重定向(即使使用 FOLLOW_LOCATION 1L)