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

UptoLike

Объектно-ориентированное программирование на С++
Matrix operator * (Matrix&);
// оператор умножения матрицы на значение
// типа Т (типа данных элемента матрицы)
Matrix operator * (T);
// оператор присваивания матрицы
Matrix& operator = (Matrix&);
// оператор получения строки матрицы
T* operator [] (int);
// оператор получения транспонированной матрицы
Matrix operator !();
// метод вычисления определителя матрицы –
// определитель будет иметь тип данных элемента
// матрицы, например, определитель матрицы
// комплексных чисел – комплексное число
T Determinant();
// метод получение подматрицы,
// полученной вычеркиванием
// одной строки и одного столбца
Matrix SubMatrix(int, int);
// оператор получения обратной матрицы
Matrix operator ~ ();
// дружественные шаблоны функций для умножения числа
// на матрицу и реализации операций ввода/вывода
template <class T>
friend Matrix<T> operator * (T, Matrix<T>&);
template <class T>
friend ostream& operator <<
(ostream&, Matrix<T>&);
template <class T>
friend istream& operator >>
(istream&, Matrix<T>&);
};
Объявление шаблона класса СЛАУ:
template <class T> class Slau
{
int m; // количество уравнений
int n; // количество переменных
Matrix<T> a; // матрица коэффициентов
// обобщенного типа
Matrix<T> b; // вектор элементов правой части
// обобщенного типа
Matrix<T> x; // решение системы линейных уравнений
bool isSolved;// определяет, является ли
// система совместной
int* reoder; // массив перестановки переменных
int rang; // ранг матрицы
215
                      Объектно-ориентированное программирование на С++
     Matrix operator * (Matrix&);
     // оператор умножения матрицы на значение
     // типа Т (типа данных элемента матрицы)
     Matrix operator * (T);
     // оператор присваивания матрицы
     Matrix& operator = (Matrix&);
     // оператор получения строки матрицы
     T* operator [] (int);
     // оператор получения транспонированной матрицы
     Matrix operator !();
     // метод вычисления определителя матрицы –
     // определитель будет иметь тип данных элемента
     // матрицы, например, определитель матрицы
     // комплексных чисел – комплексное число
     T Determinant();
     // метод получение подматрицы,
     // полученной вычеркиванием
     // одной строки и одного столбца
     Matrix SubMatrix(int, int);
     // оператор получения обратной матрицы
     Matrix operator ~ ();
     // дружественные шаблоны функций для умножения числа
     // на матрицу и реализации операций ввода/вывода
     template 
          friend Matrix operator * (T, Matrix&);
     template 
          friend ostream& operator <<
                                     (ostream&, Matrix&);
     template 
          friend istream& operator >>
                                     (istream&, Matrix&);
};

Объявление шаблона класса СЛАУ:
template  class Slau
{
     int m;         // количество уравнений
     int n;         // количество переменных
     Matrix a; // матрица коэффициентов
                    // обобщенного типа
     Matrix b; // вектор элементов правой части
                    // обобщенного типа
     Matrix x; // решение системы линейных уравнений
     bool isSolved;// определяет, является ли
                    // система совместной
     int* reoder;   // массив перестановки переменных
     int rang;    // ранг матрицы

                                                                   215