add()
matrix class
friend
friend matrix add(const matrix& m1, const matrix& m2);
matrix matrix::add(const matrix& m);
class matrix { public: matrix(int d); matrix(int d1, int d2); ~matrix(); int ub1() const { return (s1 - 1); } int ub2() const { return (s2 - 1); } private: int** p; int s1, s2; }; matrix::matrix(int d): s1(d), s2(d){ if (d < 1) { // cerr is the standard stream for error output // similar to stderr in C cerr << "illegal matrix size" << d << "by" << d << "\n"; exit(1); } p = new int*[s1]; for (int i = 0; i < s1; i++) p[i] = new int[s2]; }
matrix::matrix(int d1, int d2): s1(d1), s2(d2){ if (d1 < 1 || d2 < 1) { cerr << "illegal matrix size" << d1 << "by" << d2 << "\n"; exit(1); } p = new int*[s1]; for (int i = 0; i < s1; i++) p[i] = new int[s2]; } matrix::~matrix(){ for (int i = 0; i <= ub1(); ++i) delete p[i]; delete []p; }