问题描述
我一直在类似这样的类中运行函数定义:
//Accessor function
const string getName() const {
return name;
}
我的问题是:为什么“const”这个词出现了两次。我知道定义末尾的“const”有助于保护原始成员信息,但第一个“const”有什么作用?
解决方法
第一个 const
将返回值限定为不可修改;第二个 const
指定函数不会修改调用它的类实例(或其任何成员)。
第一个在函数返回对成员的引用时更常用,以防止返回的引用被用于修改它所引用的成员。