我正在尝试在C++11中制作自己的字符串类,但我遇到了一些问题。与std::string类比较时,我无法弄清如何使用std::string.at(int) = 'a';方法或重载。
我已经在我的自定义类中创建了at(int)方法:
int at(int index)
{
if(index <0 || index > size-1) {throw std::out_of_range("Error, index out of range");}
return data[index];
}
如果我只使用以下代码,它可以很好地工作:
MyString.at(2);
在主文件中:
MyString = "Hello world!"; //Works fine!
MyString.at(2)='a'; //Gives, Error: expressino must be a modifiable Ivalue.
任何关于这方面的帮助都会很棒,谢谢!
index > size-1
可以更习惯地写成index >= size
。 - Pete Becker