ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
Заметим, что операции ввода/вывода для производного класса
переопределять не требуется. Дружественные функции, которые
перегружают эти операции в базовом классе Matrix, получают объект
для ввода/вывода по ссылке, которая может указывать и на объект
производного класса. Поэтому эти функции будут работать и при
вводе/выводе объектов класса QMatrix.
Для создания квадратной матрицы заданного размера достаточно
вызвать конструктор базового класса с параметрами:
QMatrix(int n): Matrix(n,n)
{}
Конструктор базового класса всегда вызывается при создании
объекта производного класса. Если вызов конструктора класса Matrix
явно не указан, произойдет вызов конструктора без параметров, который
определяет пустой объект (размеры равны 0, указатель на матрицу равен
NULL). В этом случае выделение памяти для хранения квадратной
матрицы и инициализацию ее размеров необходимо произвести в
конструкторе производного класса:
QMatrix:: QMatrix(int n1)
{
n = n1;
m = n1;
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.0;
}
Для преобразования объекта базового класса к производному
используются следующие конструктор и оператор присваивания:
QMatrix(Matrix& ob) : Matrix(ob)
{ }
QMatrix& QMatrix::operator = (Matrix& ob)
{
Matrix::operator = (ob);
return *this;
}
146
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
Заметим, что операции ввода/вывода для производного класса
переопределять не требуется. Дружественные функции, которые
перегружают эти операции в базовом классе Matrix, получают объект
для ввода/вывода по ссылке, которая может указывать и на объект
производного класса. Поэтому эти функции будут работать и при
вводе/выводе объектов класса QMatrix.
Для создания квадратной матрицы заданного размера достаточно
вызвать конструктор базового класса с параметрами:
QMatrix(int n): Matrix(n,n)
{}
Конструктор базового класса всегда вызывается при создании
объекта производного класса. Если вызов конструктора класса Matrix
явно не указан, произойдет вызов конструктора без параметров, который
определяет пустой объект (размеры равны 0, указатель на матрицу равен
NULL). В этом случае выделение памяти для хранения квадратной
матрицы и инициализацию ее размеров необходимо произвести в
конструкторе производного класса:
QMatrix:: QMatrix(int n1)
{
n = n1;
m = n1;
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.0;
}
Для преобразования объекта базового класса к производному
используются следующие конструктор и оператор присваивания:
QMatrix(Matrix& ob) : Matrix(ob)
{ }
QMatrix& QMatrix::operator = (Matrix& ob)
{
Matrix::operator = (ob);
return *this;
}
146
Страницы
- « первая
- ‹ предыдущая
- …
- 144
- 145
- 146
- 147
- 148
- …
- следующая ›
- последняя »
