通过关注此网站C++ FAQ,我为我的Matrix类重载了一个operator()。这是我的班级:
class Matrix
{
public:
inline float& operator() (unsigned row, unsigned col)
{
return m[row][col];
}
private:
float m[4][4];
};
现在我可以在主函数中使用它:
int main()
{
Matrix matrix;
std::cout << matrix(2,2);
}
但现在我想用指针这样使用它:
int main()
{
Matrix matrix;
Matrix* pointer = &matrix;
std::cout << pointer(2,2);
}
和compilator告诉指针不能用作函数。有没有解决方案?
答案 0 :(得分:8)
您需要取消引用它:
(*pointer)(2,2)
或者您需要以全名调用运营商:
pointer->operator()(2,2)