ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
Конструктор использует вызов конструктора копирования класса
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
Страницы
- « первая
- ‹ предыдущая
- …
- 145
- 146
- 147
- 148
- 149
- …
- следующая ›
- последняя »
