【发布时间】:2016-09-05 03:37:43
【问题描述】:
在 C++ Primer P259 中,它说
为 const 的对象,以及指向 const 对象的引用或指针, 只能调用 const 成员函数。
然而,根据我目前的理解,指向 const 对象的指针不一定适用,因为指针本身是非常量的。只要成员函数不修改所指向的对象,就可以在指向 const 对象的指针上调用非常量成员函数。
对吗?
编辑:好的,我现在明白了,这是因为当我们“调用指针上的成员函数”时,我们实际上是先取消引用它,然后使用下面的对象。
【问题讨论】:
-
不,不是。报价是正确的。我不知道你为什么认为指针的 const-ness 具有任何意义。
-
the member function does not modify the object being pointed to:你的意思是像const函数,或者只是碰巧避免修改任何东西的非const函数? -
"因为指针本身是非常量的" 这意味着您可以更改指针。不是它指向的东西。
-
@juanchopanza 是的,那么对于这样的指针,为什么只能调用const成员函数呢?
-
因为它是一个指向 const 的指针。如果你可以调用非 const 成员,它就不是指向 const 的指针。
标签: c++ member-functions