指示是:
MyString 对象应重载以下运算符:
1) 括号运算符应该被重载以替换之前赋值的 Set 和 Get 函数。请注意,两个实例都应在违反字符串数组边界时发出 exit(1) 。
我定义函数的 .cpp 文件:
// My original set function to replace the character at the index passed in with the character passed in
void MyString::Set(int index, char b)
{
if(String[index] == '\0')
{
exit(1);
}
else
{
String[index] = b;
}
}
//original get function to get the character of the index passed in as argument
char MyString::Get(int i)
{
if( String[i] == '\0')
{
exit(1);
}
else
{
return String[i];
}
}
我如何将其转换为重载的 () 运算符函数?我得到的最多的是:
MyString& MyString::operator()(const int index, const char b)
{
if(String[index] == '\0')
{
exit(1);
}
else
{
String[index] = b;
}
}
char& MyString::operator()(const int i)
{
if( String[i] == '\0')
{
exit(1);
}
else
{
return String[i];
}
}
我究竟做错了什么?