如何在重载运算符中使用函数指针
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;
我正在尝试实现一种访问矩阵元素的 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;