const T& value() const 是什么意思?

What does const T& value() const mean?

本文关键字:const 是什么 意思 value      更新时间:2023-10-16

在John Mongan的《Programming Interviews Exposed》一书中(见第33页),有一个单向链表元素的函数声明:

const T& value() const {...}

我了解方法名称之前的所有内容的含义,即它是对模板数据类型的引用,您不能修改,但是 value() 后面的额外 const 表示什么?一个恒定的参考?我认为引用已经是恒定的(即对象的不可更改别名)。

const T& value() const {...}

这意味着函数value()将返回const T&类型,并且介于两者之间(在函数中)不会修改类本身。假设我写:

class Cfoo
{
    void foo() const
    {
        //Cfoo will not be modified here
    }
}

如果我直接引用 MS 文档:

使用 const 关键字声明成员函数指定该函数是"只读"函数,不会修改为其调用的对象。常量成员函数不能修改任何非静态数据成员,也不能调用任何不常量的成员函数。

方法名称后面的const表示该方法不修改对象的任何字段。 因此,可以在对象的const实例上调用它。