zoukankan      html  css  js  c++  java
  • c/c++ const this指针

    const this指针

    方法列表后面的const是什么含义呢?答案:不可以在方法里修改成员变量

    class Test{
    public:
      void fun()const{
        //data = 10;//编译不过,因为有const关键字,所以不可以修改this指针所指向的内容
     }
    private:
      int data;
    };
    

    注意点:

    • 非const方法里调用const方法是可以的
    • const方法里调用const方法是可以的
    • const方法里调用非const方法是不可以的。

    原因:this指针。

    因为非const方法里的this指针是有const限制的,所以当在const方法里调用非const方法时,无法给非const方法一个无const限制的this指针。

    #include <iostream>
    using namespace std;
    
    class Test{
    public:
      Test(int d = 0) : data(d){}
      void a()const{
        b();
      }
      //如果去掉方法b的const关键字,编译无法通过
      void b()const{
    
      }
      ~Test(){}
    private:
      int data;
    };
    
    int main(){
      Test t(10);
    }
    
  • 相关阅读:
    [CF1037D] Valid BFS?
    [AMPPZ2014] Petrol
    [CF241E] Flights
    [洛谷P4436] HNOI/AHOI2018 游戏
    [洛谷P1613] 跑路
    [AMPPZ2014] The Captain
    [洛谷 P1373] 小a和uim之大逃离
    jq 图片切换效果 类似3D
    jq 块的拖拽效果
    sort排序问题
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/9505457.html
Copyright © 2011-2022 走看看