so i need some help. I'm trying to create a matrix that will do all these functions.. but im not so sure what im doing wrong since im an inexperienced at c++. Anyone?

Gratzi!

```
#include <math.h>
#include <iostream>
#include <string>
//#include <matrix.h>
using namespace std;
#define MAXNUM 9
class Matrix
{
private:
int **mat_array; // data structure for a dynamic matrix
int rows;
int cols;
//static int ** create(int, int);
public:
void *create(int nRows, int nCols) // constructor
{
rows = nRows;
cols = nCols;
mat_array = create(rows, cols);
return mat_array;
}
// lots more public functions and operators
~Matrix(){}; // destructor
void operator+ (Matrix other) // operation for adding the values of two different matrices
{
Matrix *ADDversity(other.rows, other.cols)
{
int ADDversity[500];
int i, j;
for (i=0; i<rows; i++)
{
for (j=0; j<cols; j++)
{
ADDversity[i][j] = this.mat_array[i][j] + other.mat_array[i][j];
}
}
return ADDversity;
}
}
Matrix operator- (Matrix other) //operation for subtracting the values of two different matrices
{
Matrix other (other.rows, other.cols);
int i, j;
for (i=0; i<rows; i++)
{
for(j=0; j<cols; j++)
{
SUBmarine[i][j] = this.mat_array[i][j] - other.mat_array[i][j];
}
}
return SUBmarine;
}
/*Matrix operator* (Matrix other)
{
Matrix MULT (other->rows, other->cols);
int i, j;
}*/
void *Scale_by(int mult,) // function for scaling all values of a matrix by selected int value
{
int i, j;
for (i=0; i<rows; i++)
{
for(j=0; j<cols; j++)
{
SCALastic[i][j] = ((this->mat_array[i][j]) * mult);
}
}
return SCALastic;
}
Matrix Transpose_to(int cols, int rows) // function for transposing a selected matrix
{
int transcol = rows;
int transrow = cols;
TRANSistor (int transcols, int transrows);
{
int i, j;
for (i=0; i < tempcols; i++)
{
for(j=0; j < temprows; j++)
{
TRANSistor[j][i] = (this.mat_array[i][j]);
}
}
return TRANSistor;
}
static int **create(int nrows, int ncols)
{ // dynamically create and return a nrowsXncols
// matrix with elements initialized to random #s
int **values;
values = new int *[nrows];
for(int i=0; i < nrows; i++)
{ *(values + i) = new int[ncols];
for(int i=0; i < nrows; i++)
for(int j=0; j < ncols; j++)
{
values[i][j] = rand() % MAXNUM +1;
}}
return values;
}
void Matrix :: free_memory()
{
if( *mat_array != NULL)
{
for(int i = 0; i < rows; i++)
{
delete *mat_array[i][0];
}
}
rows = 0;
cols = 0;
mat_array = NULL;
}
};
int main(void)
{
cout <<
```