gpt4 book ai didi

c++ - const func (const scalar& a) const 中的三个 "const",为什么?

转载 作者:太空狗 更新时间:2023-10-29 20:16:04 25 4
gpt4 key购买 nike

这里是新手!

我正在阅读一段代码,我看到作者经常写一个成员函数作为

const int func (const scalar& a) const
// etc

你看这里有三个const,现在我明白了中间一个,const scalar& a,目的是不改变对象a,但是另外两个const呢?

我应该一直这样做,以保护废话不变,这是一个好习惯吗?

非常感谢!

最佳答案

您发布的代码无效,无法编译。但是,如果您考虑

class MyClass {
const int& func (const scalar& a) const {
// ...
}
};

第一个 const 将指定返回值是常量(即不可变)。第二个 const (const scalar& a) 指定函数不修改参数 a 的值。第三个 const 指定 func 是常量成员函数,即它不会修改 MyClass 实例本身。

关于c++ - const func (const scalar& a) const 中的三个 "const",为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10807671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com