重载operator()并在类中使用

时间:2015-10-21 07:17:37

标签: c++ operator-overloading

我已经成功重载了()运算符。

inline real& Array::operator ()(int j,int i)
{                   
    //TODO checks                          
   return array_[i + j*xSize_];            
}

它也可以正常工作。但是我没想到,如何在课堂内访问它。例如,以下函数打印所有元素:

for(int y = ySize_ -1; y >= 0; --y)
{
    for( int x = 0; x < xSize_; ++x)
    {
        std::cout << this(x,y);
    }
    std::cout << std::endl;
}

我如何访问呢?

1 个答案:

答案 0 :(得分:7)

您可以使用以下语法:

(*this)(x, y);

或更长的形式:

this->operator()(x, y);

operator()(x,y);