このサイトのC++FAQに従うことで、Matrixクラスのoperator()をオーバーロードしました。これは私のクラスです:
class Matrix
{
public:
inline float& operator() (unsigned row, unsigned col)
{
return m[row][col];
}
private:
float m[4][4];
};
これで、次のようなmain関数で使用できます。
int main()
{
Matrix matrix;
std::cout << matrix(2,2);
}
しかし今、私は次のようなポインタでそれを使用したいと思います:
int main()
{
Matrix matrix;
Matrix* pointer = &matrix;
std::cout << pointer(2,2);
}
コンパイラは、ポインタを関数として使用できないことを通知します。解決策はありますか?