我一直在問一類我以重載[]和返回兩個常量和非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