新手在这里!
我正在阅读代码,我看到作者经常写成员函数
const int func (const scalar& a) const
// etc
Run Code Online (Sandbox Code Playgroud)
你看到这里有三个const,现在我理解中间的一个,const scalar&a,它的目的是不改变对象a,但是另外两个const呢?
这是一个好习惯,我应该一直这样做,以保护blahblah不变吗?
非常感谢!
您发布的代码无效,无法编译.但是,如果你考虑
class MyClass {
const int& func (const scalar& a) const {
// ...
}
};
Run Code Online (Sandbox Code Playgroud)
第一个const将指定返回值是常量(即不可变).second const(const scalar& a)指定函数不修改参数值的值a.第三个const指定它func是一个常量成员函数,即它不会修改MyClass实例本身.