gpt4 book ai didi

c++ - 为什么要返回基本类型的 const 引用? (std::string::operator[])

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:33 25 4
gpt4 key购买 nike

运算符 std::string::operator[] 的签名是:

char& operator[] (size_t pos);
const char& operator[] (size_t pos) const;

为什么 const 版本返回 const char& 而不仅仅是 char

最佳答案

因为 const 对象的全部目的是它不能被修改。如果 const 类成员(在这种情况下)返回对字符串中字符的可变引用,您可以修改它。

现在,就 operator[] 而言,这是因为您可以使用 & 运算符来获取指向它的指针。毕竟,这样的事情很常见:

 auto *foo=&bar[baz];

您无法使用普通的右值返回类型来做到这一点。在这种情况下,至少您可以获得一个 const 指针。

关于c++ - 为什么要返回基本类型的 const 引用? (std::string::operator[]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37534102/

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