zoukankan      html  css  js  c++  java
  • const成员函数

    本文结论:

      const对象、指向const对象的指针或引用只能用于调用其const成员函数。

    实例说明:

    class A
    {
    public:
        void mf1(){ cout<<"Function Call"<<endl;  }
        void mf2() const{ cout<<"const Function Call"<<endl;}
    };
    int main()
    {
        A a;
        a.mf1();     //ok
        a.mf2();     //ok
        const A b;
        b.mf1();    //error
        b.mf2();    //ok
        return 0;
    }

      听过this指针的应该知道,两个成员函数的声明其实是这样的:

    void mf1(A *const this);
    void mf2(const A *const this);

    (每个成员函数都有一个额外的、隐含的形参this,将该成员函数与调用该函数的类对象捆绑在一起)

      又因为c++规定将普通引用绑定到const对象是不合法的。   

    const int ival = 1024;
    int &refVal = ival;    //error

      所以得证。

  • 相关阅读:
    codefoces 1405 D Tree Tag
    洛谷P3413 萌数
    数位DP模板
    leetcode 统计所有可行路径
    Josephus Transform 加速置换
    牛客IOI周赛18-提高组 排列
    Find a way HDU
    Oil Deposits HDU
    Fire! UVA
    Pots POJ
  • 原文地址:https://www.cnblogs.com/gattaca/p/4314498.html
Copyright © 2011-2022 走看看