申祷无 2016-05-20 06:09 采纳率: 50%
浏览 1768
已采纳

C++ 中的 this 为什么定义成常量指针?

《C++ Primer》第五版,中文版。231 页。
为什么不是引用或者普通的变量?

  • 写回答

7条回答 默认 最新

  • lm_whales 2016-05-20 06:23
    关注

    this指针的常量性和函数的常量性相关,和函数签名有关
    const 函数 中,是 this 是
    const T*const this;
    const volatile 签名的 函数中是 const volatile T *const this;
    volatile 签名的 函数中是 volatile T *const this;
    函数后面没有签名标志的是非常量函数
    this 参数是 T *const this;

    this 指针,在非静态 成员函数中处处都要用到,
    一旦修改了,就不可用了,所以是不可修改的。
    this 指针,是非静态成员函数的形式参数,指向调用该函数的那个对象。
    这个不变性(永远指向调用这个函数的对象),
    是必须保证的,所以不能修改。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行