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

UptoLike

Объектно-ориентированное программирование на С++
MatrixList::MatrixList(int m1, int n1)
{
m = m1;
n = n1;
head = NULL;
count = 0;
}
// конструктор копирования матриц
MatrixList::MatrixList(const MatrixList& ob)
{
// создание списка элементов матрицы путем
// поэлементного копирования из списка
// элементов заданной матрицы ob
m = ob.m;
n = ob.n;
if (ob.head == NULL)
{
head = NULL;
return;
}
ListElement* current = ob.head->next;
ListElement* current1;
head = new ListElement(ob.head->a.i, ob.head->a.j,
ob.head->a.value);
head->next = NULL;
count++;
current1 = head;
while(current != NULL)
{
current1->next = new ListElement(current->a.i,
current->a.j, current->a.value);
current1 = current1->next;
current = current->next;
count++;
}
}
// операция присваивания матриц
MatrixList MatrixList::operator = (MatrixList& ob)
{
// уничтожение списка, которому будет
// присвоено новое значение
DestroyList();
// создание списка элементов матрицы путем
// поэлементного копирования из списка
// элементов заданной матрицы ob
m = ob.m;
171
                     Объектно-ориентированное программирование на С++
MatrixList::MatrixList(int m1, int n1)
{
     m = m1;
     n = n1;
     head = NULL;
     count = 0;
}

// конструктор копирования матриц
MatrixList::MatrixList(const MatrixList& ob)
{
     // создание списка элементов матрицы путем
     // поэлементного копирования из списка
     // элементов заданной матрицы ob
     m = ob.m;
     n = ob.n;
     if (ob.head == NULL)
     {
          head = NULL;
          return;
     }
     ListElement* current = ob.head->next;
     ListElement* current1;
     head = new ListElement(ob.head->a.i, ob.head->a.j,
                                        ob.head->a.value);
     head->next = NULL;
     count++;
     current1 = head;
     while(current != NULL)
     {
          current1->next = new ListElement(current->a.i,
                         current->a.j, current->a.value);
          current1 = current1->next;
          current = current->next;
          count++;
     }
}

// операция присваивания матриц
MatrixList MatrixList::operator = (MatrixList& ob)
{
     // уничтожение списка, которому будет
     // присвоено новое значение
     DestroyList();
     // создание списка элементов матрицы путем
     // поэлементного копирования из списка
     // элементов заданной матрицы ob
     m = ob.m;

                                                                  171