[英]C++ Const Member Function (Beginner)
在 C++ Primer P259 中,它说
const 对象以及指向 const 对象的引用或指针只能调用 const 成员函数。
然而,根据我目前的理解,指向 const 对象的指针不一定适用,因为指针本身是非常量的。 只要成员 function 不修改所指向的 object,在指向 const 对象的指针上调用非常量成员函数是合法的。
这是对的吗?
编辑:好的,我现在明白了,这是因为当我们“在指针上调用成员 function”时,我们实际上是先取消引用它,然后在下面使用 object。
报价是正确的。
尝试这个
class TestClass
{
public:
void nonconst(){};
void constMethod() const {}
};
int main()
{
TestClass const *s = new TestClass();
//s->nonconst(); // (1) no not legal
s->constMethod();
s = new TestClass(); // (2) yes legal
s->constMethod();
}
将'const TestClass'作为'this'参数传递会丢弃限定符[-fpermissive]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.