我有一个包含3个const的函数:
const std::string at(const unsigned int index) const;
据我了解,参数( const unsigned int index)意味着不会更改索引。那另外两个const呢?他们为什么在那里?
答案 0 :(得分:1)
第一个const表示返回类型是const,第二个const表示参数是const,第三个const表示函数是const函数...
这个问题实际上是重复的...请点击此链接
答案 1 :(得分:1)
C ++中的const
keywoard表示特定对象或变量不可修改。它可以在各种环境中使用:
在函数内部声明变量const
表示该函数内部不会修改该变量。
将成员函数声明为const
,通过将const
附加到函数原型的末尾来完成,表明该函数是一个“只读”函数,不会修改对象它被称为。
const
可行性规则是const
- 可以应用于非const
变量或成员函数,但一旦应用,就无法删除。
答案 2 :(得分:0)
const std :: string at( const unsigned int index) const ; 在这个例子中,左边的第一个const是返回类型的常量,这意味着它将返回的任何值只能保存在一个const变量中(甚至可以改变数据属性的类型转换)。 第二个const就像你说的那样是正确的。 第三个const表示函数是常量函数。这意味着在该函数内部,您不会修改任何会改变对象状态的变量。 如果要修改const函数内的任何类或全局变量,则编译器将抛出错误。