新手在这里!
我正在阅读代码,我看到作者经常将成员函数编写为
const int func (const scalar& a) const
// etc
你看到这里有三个const,现在我理解了中间的一个const,const scalar& a,目的是不改变对象a,但另外两个const呢?
这是一个好习惯,我应该一直这样做,以保持blahblah不变?
非常感谢!
答案 0 :(得分:7)
您发布的代码无效,无法编译。但是,如果你考虑
class MyClass {
const int& func (const scalar& a) const {
// ...
}
};
第一个const
将指定返回值是常量(即不可变)。第二个const
(const scalar& a
)指定函数不修改参数a
的值的值。第三个const指定func
是一个常量成员函数,即它不会修改MyClass
实例本身。
答案 1 :(得分:0)
由于没有人提及它:
之间完全没有区别const int some_function();
和
int some_function();
标量返回类型const
被忽略;例如int
);它只对班级类型有用。 related