在书"编程访谈暴露"作者:John Mongan(see page 33),这是一个单一链接列表元素的函数声明:
const T& value() const {...}
我理解方法名称之前的所有内容,即它是对您可能无法修改的模板数据类型的引用,但是value()后面的额外const表示什么?一个恒定的参考?我认为引用已经是常量(即不可更改的别名,即对象)。
答案 0 :(得分:3)
const T& value() const {...}
这意味着函数value()
将返回const T&
类型,并且在(函数中)之间不会修改类本身。
我说写道:
class Cfoo
{
void foo() const
{
//Cfoo will not be modified here
}
}
如果我直接引用msdn:
使用const关键字声明成员函数指定该函数是"只读"不修改调用它的对象的函数。常量成员函数不能修改任何非静态数据成员或调用任何不恒定的成员函数。
答案 1 :(得分:0)
方法名称后面的const
表示该方法不会修改该对象的任何字段。因此,可以在对象的const
实例上调用它。