我正在编写一个处理二维矩阵代数的库,使用模板来定义矩阵内部数据的类型,以便能够自由地处理各种类型的矩阵数据。
我想知道是否有办法重载
我已经尝试将其作为类方法,并使用
我想知道是否有办法重载
abs()
函数,以便将矩阵的行列式写成abs(M);
,或者我必须为此使用另一个名称。我唯一的担心是矩阵的行列式与其绝对值有关(正如标准符号所示),所以在我看来,重载绝对值函数以返回行列式是有意义的。我已经尝试将其作为类方法,并使用
m.abs();
进行调用,显然这样做效果很好...但我希望该函数位于类之外,并将矩阵作为参数传递,就像int abs(int n);
函数一样。因此,我尝试只是重载函数,但这给我带来了一些问题,因为abs(n);
函数期望一个整数或长整数值作为参数,而不是用户定义的矩阵。我还尝试将其设置为类的友元方法,但似乎没有帮助。期待您的建议。
determinant
。不要为了重载而重载,当不同的重载执行不同的操作时,这样做会带来更多的伤害而不是好处。 - 463035818_is_not_an_aistd::abs
或者在命名空间 std 中编写函数,也不应该在全局范围内编写函数。相反,你应该创建一个新的命名空间,比如Matrix
,然后在其中编写一个名为abs
或者det
的函数。 - LiuYuan