一个函数的const声明

这个问题在这里已经有了答案:

  • C ++方法声明中最后一个“const”的含义? 7个答案

  • 这些是成员函数声明,大概不是常规函数。

    const int getNum(int &a, int &b) const;
    

    最左边的const表示从该函数返回的int是常量。 这是一个相对无意义的区别 - 当然,int是不变的,但是在使用它之前,你会隐式地创建它的副本。 这对类返回类型有影响,但它仍然不是特别有用。

    最右边的const意味着可以在一个常量对象上调用成员函数,并且该函数不允许修改该对象。 实际上,函数内的this指针将是常量。

    const int getNum(int &a, int &b);
    

    const在这里的含义最左边相同的const在第一个例子中,返回值是恒定的。

    int getNum(int &a, int &b) const;
    

    const这里的含义与最右边的相同const在第一示例中,隐式this指针是恒定的。


    const int swap(int &a, int &b);
    

    返回一个不可更改的值

      int swap(int &a, int &b) const;
    

    返回可更改的值,但在其内部,没有一个变量可以在运行时更改。

     const int swap(int &a, int &b) const;
    

    两者


    第一个和第三个是const成员函数,这意味着它们可以在const实例上调用,并且不会修改任何实例的字段。

    第一个和第二个返回类型为const int ,这不是很有用,因为它们返回一个临时值,所以将该值设置为const没有意义。

    链接地址: http://www.djcxy.com/p/40433.html

    上一篇: Const declaration of a function

    下一篇: What does const after function header do?