重载 operator() 并在 class 内使用

Overloading operator() and using within class

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

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

它也很好用。但是我没有想出如何在 class 本身中访问它。例如下面的函数,它打印所有的元素:

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

那我怎么访问它?

您可以使用以下语法:

(*this)(x, y);

或更长的形式:

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

operator()(x,y);