#include // --------------------------------------------- MatrixNxN: Dynamic size matrix class MatrixNxN { public: float *A; int N; /* ------------------------------------------ Constructor !!! ------------------------------------------ */ MatrixNxN(int n) { cout << "Calling constructor with n = " << n << endl << endl; A = new float[n*n]; N = n; } /* ------------------------------------ AddNum(x): add number to matrix ------------------------------------ */ void AddNum(float x) { int i, j; for (i = 0; i < N; i = i + 1) for (j = 0; j < N; j = j + 1) A[i*N+j] = A[i*N+j] + x; }; /* ------------------------ Print(): print matrix ------------------------ */ void Print() { int i, j; for (i = 0; i < N; i = i + 1) { for (j = 0; j < N; j = j + 1) cout << A[i*N+j] << "\t"; cout << "\n"; } cout << "\n"; }; }; // ----------------------------------------------------------------------- int main(int argc, char *argv[]) { int i, j, k, N; N = 4; MatrixNxN M(N); k = 1; for (i = 0; i < N; i = i + 1) for (j = 0; j < N; j = j + 1) { M.A[i*N+j] = k; k = k + 1; } M.Print(); M.AddNum(4); // Compare with: AddNum(&M, 4); M.Print(); }