【发布时间】:2012-09-07 00:48:13
【问题描述】:
我在 C++ 中重载了一个简单类的 [](方括号)运算符,以从数组中返回一个整数。我现在要在成员函数中重用这个重载运算符。我无法实现这一点,因为使用 *this[ i ] 显然不起作用,尽管我可以直接引用运算符:
int & A::operator [] (size_t i)
{
return ints[ i ];
}
...
int A::getVal ( size_t i) const
{
// Does not work
return *this[ i ];
// Does work
// return operator []( i );
}
为什么解引用指针this并使用操作符[]会导致编译错误,但直接调用操作符有效?
编译时出现以下错误:
无法从 'const Array' 转换为 'char'
感谢您的任何意见。
【问题讨论】:
标签: c++ pointers operator-overloading return this