gpt4 book ai didi

c++ - 在重载中返回 const 元素

转载 作者:行者123 更新时间:2023-11-28 03:42:03 25 4
gpt4 key购买 nike

我在一门课上被要求重载 [] 并返回一个 const 和一个非 const 字符:

char * data_;
char & operator [] (size_t index);
const char & operator [] (size_t index) const;

我对两者都有相同的实现,并且可以编译,但我很确定我在这里遗漏了一些东西:

const char & Array::operator [] (size_t index) const
{
return data_[index]; // todo: needs to be const?
}

如何确保返回的字符不可修改?

最佳答案

How can I ensure the returned character is not modifiable?

返回类型 const char& 中的 const 确保字符不可通过返回的引用进行修改。


但是请注意,返回 char 可能更可取(即按值返回 char,而不是对 const char< 的引用)。当你有一个大对象(因为在许多情况下你可以避免复制大量字节)或在通用代码中(因为你不知道可能出现的所有类型的大小)时,返回一个 const 引用很有用,但是当返回已知较小的东西时(不会比 char 小),您可以按值返回它。

关于c++ - 在重载中返回 const 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864368/

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