我一直在问一类我以重载[]和返回两个常量和非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?
}
如何确保返回的字符不可修改?
请原谅这个奇怪的私人命名和它不使用模板的事实,我不能更改标题:) – JoeB 2012-01-14 18:30:33
这个命名并不奇怪。这是很常见的,事实上,这是我使用的。 – 2012-01-14 18:32:18
你的实现是正确的,返回类型的const确保返回的值是const。 – 2012-01-14 18:32:37