Currently, the code uses a member function operator + overload like this
Matrix operator + (const Matrix& B){
    int l = (int)B.a.size();
    int b = (int)B.a[0].size();
    for (int i = 0; i < l; i++){
        for (int j = 0; j < b; j++){
            this->a[i][j] = this->a[i][j] + B.a[i][j];
        }
    }
    return *this;
    }
Calling the + operator overload looks like
Matrix x;
Matrix y;
Matrix result;
result = x + y;
The code alters x also because we use this->a[i][j] = this->a[i][j] + b.a[i][j] the x gets updated to become result. How do I keep x constant and add the sum of x,y and put it into result?
