运算符重载“基本”类

时间:2013-05-12 18:14:06

标签: c++ matrix overloading operator-keyword

您好我想将矩阵乘以左边的数字,例如:N = a * M其中a是数字。

如果我想在右边相乘,我会简单地在我的矩阵类中重载运算符*。 但在这种情况下我该怎么办?即使它是“默认”类,我可以重载浮点运算符*吗? (我甚至不确定这是一堂课)

2 个答案:

答案 0 :(得分:3)

您必须根据另一个来定义该功能。例如:

Matrix operator *(float x, Matrix const& m)
{
    return m * x;
}

答案 1 :(得分:0)

重载*运算符在乘以常量后返回矩阵。

matrix  matrix :: operator* (int a)
{
   matrix temp(x, y);
    int num,num1, num2;
    A = new int *[temp.x];
    for (num=0; num<=temp.x; num++)
    {
        A[num] = new int [temp.y];
    }
        for (num1=0; num1<temp.x; num1++)
    {
        for (num2=0; num2<temp.y; num2++)
        {
            temp.A[num1][num2] = 0;
        }
    }
    int i, j;
    for ( i = 0; i < x; i++)
    {
        for ( j = 0; j < y; j++)

        {

            temp.A[i][j] = a * A[i][j];
        }
    }
    return (temp);
}

请参阅此示例matrix multiply by number