ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
// операция вычитания матриц
Matrix operator-(Matrix&);
// операция умножения двух матриц
Matrix operator*(Matrix&);
// операция умножения матрицы на число
Matrix operator*(double);
// операция присваивания
Matrix& operator=(Matrix&);
// операция получения строки матрицы с заданным номером
double* operator[](int);
// операция транспонирования матрицы
Matrix operator!();
// дружественная функция операции умножения
// числа на матрицу
friend Matrix operator*(double, Matrix&);
// дружественная функция операции вывода матрицы
friend ostream& operator<<(ostream&, const Matrix&);
// дружественная функция операции ввода матрицы
friend istream& operator>>(istream&, Matrix&);
};
Объект класса Matrix определяется размерами матрицы и
двумерным массивом ее элементов. Поведенческие свойства класса
определяются операциями матричного исчисления.
Так как квадратная матрица есть частный случай прямоугольной,
структурные и поведенческие свойства класса «Квадратная матрица»
(QMatrix) будут идентичны свойствам класса Matrix. Поэтому
реализуем класс «Квадратная матрица» как наследник класса Matrix,
добавив в него методы, специфичные для квадратной матрицы
(вычисление определителя и получение обратной матрицы). Для
обеспечения доступа к переменным базового класса из производного их
объявление помещено в секцию protected класса Matrix.
Создание объекта класса Matrix требует выделения памяти для
хранения ее элементов. Поэтому класс Matrix должен обязательно
содержать конструктор копирования, оператор присваивания и
деструктор. Кроме того, можно дополнительно определить конструктор
по умолчанию и конструктор с параметрами, определяющими размеры
матрицы.
// конструктор по умолчанию
Matrix::Matrix()
{
n = 0;
136
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
// операция вычитания матриц
Matrix operator-(Matrix&);
// операция умножения двух матриц
Matrix operator*(Matrix&);
// операция умножения матрицы на число
Matrix operator*(double);
// операция присваивания
Matrix& operator=(Matrix&);
// операция получения строки матрицы с заданным номером
double* operator[](int);
// операция транспонирования матрицы
Matrix operator!();
// дружественная функция операции умножения
// числа на матрицу
friend Matrix operator*(double, Matrix&);
// дружественная функция операции вывода матрицы
friend ostream& operator<<(ostream&, const Matrix&);
// дружественная функция операции ввода матрицы
friend istream& operator>>(istream&, Matrix&);
};
Объект класса Matrix определяется размерами матрицы и
двумерным массивом ее элементов. Поведенческие свойства класса
определяются операциями матричного исчисления.
Так как квадратная матрица есть частный случай прямоугольной,
структурные и поведенческие свойства класса «Квадратная матрица»
(QMatrix) будут идентичны свойствам класса Matrix. Поэтому
реализуем класс «Квадратная матрица» как наследник класса Matrix,
добавив в него методы, специфичные для квадратной матрицы
(вычисление определителя и получение обратной матрицы). Для
обеспечения доступа к переменным базового класса из производного их
объявление помещено в секцию protected класса Matrix.
Создание объекта класса Matrix требует выделения памяти для
хранения ее элементов. Поэтому класс Matrix должен обязательно
содержать конструктор копирования, оператор присваивания и
деструктор. Кроме того, можно дополнительно определить конструктор
по умолчанию и конструктор с параметрами, определяющими размеры
матрицы.
// конструктор по умолчанию
Matrix::Matrix()
{
n = 0;
136
Страницы
- « первая
- ‹ предыдущая
- …
- 134
- 135
- 136
- 137
- 138
- …
- следующая ›
- последняя »
