如何在重载运算符中使用函数指针

How to use a function pointer in a overloaded operator

我正在尝试实现一种访问矩阵元素的 Matlab 方法。例如,如果我在 MatLab 中有以下内容:

>> A = [1 2; 3 4]

 A =

 1     2
 3     4

>> A(1,1) = 5

将生成此输出:

A =

 5     2
 3     4

用c++中的operator()可以实现吗?提前致谢。

@edit

对不起各位,我认为可以通过函数指针来解决。

我会尽量通俗点。我有一个 class 矩阵,我想使用 operator() 更改 class 的相应值,将相应的数字传递给行和列。

template<size_t I, size_t J>
class M
{
    public:
    M(double e00, ...)
    {
        // use arg_list :)
    }
    double& operator () (int i, int j)
    {
        return m[i-1][j-1];
    }
    private:
    double m[I][J];
};

M<2,2> A(1,2,3,4);
A(1,1)=5.0;