Объектно-ориентированное программирование на C++. Андрианова А.А - 137 стр.

UptoLike

Объектно-ориентированное программирование на С++
m = 0;
a = NULL;
}
// конструктор с параметрами – выделяет память заданного
// размера и инициализирует элементы матрицы нулями
Matrix:: Matrix(int m1, int n1)
{
n = n1;
m = m1;
a = new double* [m];
for(int i = 0; i < m; i++)
a[i] = new double [n];
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
a[i][j] = 0;
}
// конструктор копирования
Matrix:: Matrix(const Matrix& ob)
{
n = ob.n;
m = ob.m;
if(ob.a == NULL)
{
a = NULL;
return;
}
a = new double*[m];
for(int i = 0; i < m; i++)
a[i] = new double [n];
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
a[i][j] = ob.a[i][j];
}
// деструктор выполняет освобождение памяти,
// занимаемой двумерным массивом
Matrix::~ Matrix()
{
if(a != NULL)
{
for(int i = 0; i < m; i++)
delete [] a[i];
delete [] a;
}
}
137
                     Объектно-ориентированное программирование на С++
    m = 0;
    a = NULL;
}


// конструктор с параметрами – выделяет память заданного
// размера и инициализирует элементы матрицы нулями
Matrix:: Matrix(int m1, int n1)
{
     n = n1;
     m = m1;
     a = new double* [m];
     for(int i = 0; i < m; i++)
          a[i] = new double [n];
     for(int i = 0; i < m; i++)
          for(int j = 0; j < n; j++)
               a[i][j] = 0;
}

// конструктор копирования
Matrix:: Matrix(const Matrix& ob)
{
     n = ob.n;
          m = ob.m;
     if(ob.a == NULL)
     {
          a = NULL;
          return;
     }
     a = new double*[m];
     for(int i = 0; i < m; i++)
          a[i] = new double [n];
     for(int i = 0; i < m; i++)
          for(int j = 0; j < n; j++)
               a[i][j] = ob.a[i][j];
}

// деструктор выполняет освобождение памяти,
// занимаемой двумерным массивом
Matrix::~ Matrix()
{
     if(a != NULL)
     {
          for(int i = 0; i < m; i++)
               delete [] a[i];
          delete [] a;
     }
}

                                                                 137