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

UptoLike

Объектно-ориентированное программирование на С++
Конструктор использует вызов конструктора копирования класса
Matrix для создания базовой компоненты производного класса.
Аналогично, при выполнении присваивания вызывается оператор равно
базового класса.
Разберем последовательность вызовов конструкторов и операторов
присваивания на примере:
. . .
QMatrix a(3), b(3);
cin >> a >> b;
QMatrix c = a + b;
cout << c;
c = a * b;
cout << c;
. . .
/* для создания каждого объекта
конструктор производного класса
вызывает конструктор базового класса. */
// Ввод матриц.
/* В функции сложения результат операции
помещается в локальную матрицу, для
создания которой вызывается конструктор
с параметрами класса Matrix. Этот объект
является возвращаемым значением функции.
При осуществлении возврата вызывается
конструктор копирования класса Matrix.
Далее локальный объект уничтожается с
помощью деструктора. Для присвоения
результата новому объекту класса QMatrix
его необходимо преобразовать в этот тип
путем использования конструктора
преобразования класса QMatrix. */
// Вывод результата сложения.
/* Отличие от рассмотренной операции
сложения состоит в том, что результат
операции умножения присваивается уже
существующему объекту класса QMatrix.
Поэтому при сохранении результата
вызывается оператор присваивания класса
QMatrix, который, в свою очередь,
вызывает оператор присваивания базового
класса. */
// Вывод результата умножения.
Далее определим методы класса QMatrix. Для вычисления
определителя матрицы и обратной матрицы требуется вычислить ее
147
                          Объектно-ориентированное программирование на С++
    Конструктор использует вызов конструктора копирования класса
Matrix для создания базовой компоненты производного класса.
Аналогично, при выполнении присваивания вызывается оператор равно
базового класса.
    Разберем последовательность вызовов конструкторов и операторов
присваивания на примере:

.    .    .
QMatrix a(3), b(3);    /*   для    создания    каждого   объекта
                       конструктор        производного    класса
                       вызывает конструктор базового класса. */

cin >> a >> b;         // Ввод матриц.

QMatrix c = a + b;     /* В функции сложения результат операции
                       помещается в локальную матрицу, для
                       создания которой вызывается конструктор
                       с параметрами класса Matrix. Этот объект
                       является возвращаемым значением функции.
                       При осуществлении возврата вызывается
                       конструктор копирования класса Matrix.
                       Далее локальный объект уничтожается с
                       помощью   деструктора.   Для   присвоения
                       результата новому объекту класса QMatrix
                       его необходимо преобразовать в этот тип
                       путем      использования     конструктора
                       преобразования класса QMatrix. */

cout << c;             // Вывод результата сложения.

c = a * b;             /* Отличие от рассмотренной операции
                       сложения состоит в том, что результат
                       операции   умножения   присваивается   уже
                       существующему объекту класса QMatrix.
                       Поэтому    при    сохранении    результата
                       вызывается оператор присваивания класса
                       QMatrix,     который, в свою очередь,
                       вызывает оператор присваивания базового
                       класса. */

cout << c;             // Вывод результата умножения.
.    .    .


    Далее определим методы класса QMatrix. Для вычисления
определителя матрицы и обратной матрицы требуется вычислить ее
                                                                      147