加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C这个指针总是const

发布时间:2020-12-16 09:44:17 所属栏目:百科 来源:网络整理
导读:对于类X的非const成员函数,此指针的类型为X * const. 然后,成员函数的这个指针总是const. 然后,我们总是需要const cast,如: void foo::p() { const_cast int (member) = 1; } 我在这里错过了什么吗? 解决方法 For a non const member function of class X,
对于类X的非const成员函数,此指针的类型为X * const.

然后,成员函数的这个指针总是const.

然后,我们总是需要const cast,如:

void foo::p() {                        
      const_cast <int&> (member) = 1;    
}

我在这里错过了什么吗?

解决方法

For a non const member function of class X,this pointer is of type X* const.

不,非const成员函数中this指针的类型只是X *(它是一个rvalue).但即使这是X * const,仍然不会阻止您更改数据成员.

您的代码示例与您的问题不符.它显示了一个const成员函数.在const成员函数内部,其类型为const X *.您不能更改const成员函数内的任何数据成员(声明为mutable的数据成员除外).如果您的目标是更改数据成员,则将成员函数声明为const是一个矛盾.下定决心.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读