ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
3.6. Решение системы линейных уравнений с
коэффициентами – рациональными дробями
Несложно изменить классы решения систем линейных уравнений
для случая, когда коэффициентами системы будут, к примеру,
комплексными числами или рациональными дробями. В этом случае
будет удобно реализовать данные классы на основе шаблонов. Поскольку
коэффициенты в классе Slau хранились в объектах типа Matrix,
потребуется сделать два шаблона – шаблоны классов Matrix и Slau.
Таким образом, объекты класса, сгенерированного на основе шаблона
класса Slau для типа double, будут содержать внутри себя объекты
класса, сгенерированного на основе шаблона класса Matrix, для того же
типа double.
Создание шаблона классов Matrix и Slau на базе уже
разработанных в предыдущем разделе классов не требует особых
комментариев. Приведем только программный код разработанных
шаблонов, выделив изменения, связанные с использованием обобщенного
типа данных.
Объявление шаблона класса матрицы:
template <class T> class Matrix
{
protected:
T** a; // коэффициенты матрицы имеют
// обобщенный тип Т
int m, n; // размеры матрицы
public:
// конструктор матрицы заданных размеров
Matrix(int ,int);
// конструктор «пустой» матрицы
Matrix();
// конструктор копирования матрицы
Matrix(const Matrix&);
// деструктор матрицы
~Matrix();
// оператор суммирования двух матриц
Matrix operator + (Matrix&);
// оператор умножения двух матриц
214
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М. 3.6. Решение системы линейных уравнений с коэффициентами – рациональными дробями Несложно изменить классы решения систем линейных уравнений для случая, когда коэффициентами системы будут, к примеру, комплексными числами или рациональными дробями. В этом случае будет удобно реализовать данные классы на основе шаблонов. Поскольку коэффициенты в классе Slau хранились в объектах типа Matrix, потребуется сделать два шаблона – шаблоны классов Matrix и Slau. Таким образом, объекты класса, сгенерированного на основе шаблона класса Slau для типа double, будут содержать внутри себя объекты класса, сгенерированного на основе шаблона класса Matrix, для того же типа double. Создание шаблона классов Matrix и Slau на базе уже разработанных в предыдущем разделе классов не требует особых комментариев. Приведем только программный код разработанных шаблонов, выделив изменения, связанные с использованием обобщенного типа данных. Объявление шаблона класса матрицы: templateclass Matrix { protected: T** a; // коэффициенты матрицы имеют // обобщенный тип Т int m, n; // размеры матрицы public: // конструктор матрицы заданных размеров Matrix(int ,int); // конструктор «пустой» матрицы Matrix(); // конструктор копирования матрицы Matrix(const Matrix&); // деструктор матрицы ~Matrix(); // оператор суммирования двух матриц Matrix operator + (Matrix&); // оператор умножения двух матриц 214
Страницы
- « первая
- ‹ предыдущая
- …
- 212
- 213
- 214
- 215
- 216
- …
- следующая ›
- последняя »