下标运算符【】
特别注意*:这个运算符只能重载为类的方法
const char& hstring::operator[](unsigned short index)
{
if (index > uslen)
return -1;
else
return cstr[index];
}
int main()
{
hstr1 = "666666";
if(hstr1[10000]==-1)
{
std::cout << -1 << std::endl;
}
}
为什么要返回char&呢,因为这个hstring里面的字符串类型为char,为什么要加引用呢,因为如果我们想写入一个数据,比如hstr[1]="1",必须要加引用,因为这里返回值是一个局部变量,而且是个右值,右值无法写入,所以要加引用。const限定为只读,
hstring类型的数组运算
hstring hstrarray[10];
hstrarray[1] = hstr1;
std::cout << hstrarray[1][1] << std::endl;
那这里的【】是重载后的运算,还是重载之前的运算呢?