ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
обращение к ним из других классов невозможно. Для решения этой
проблемы имеется два подхода: включение специальных методов доступа
к данным в классы MatrixElement и ListElement или объявление
класса MatrixList дружественным этим классам. Будем использовать в
нашей программе дружественные классы. Для этого в классы
MatrixElement и ListElement добавляется строка:
friend class MatrixList;
Поскольку имя класса MatrixList мы используем до его
объявления, требуется заранее указать о существовании такого класса в
программе. Для этого делается предварительное объявление класса
MatrixList.
Для класса элемента матрицы (MatrixElement) требуется
определить только конструктор, инициализирующий индексы элемента
матрицы и его значение:
MatrixElement::MatrixElement(int i1, int j1, double val)
{
i = i1;
j = j1;
value = val;
}
Класс элемента списка (ListElement) тоже должен содержать
конструктор, который вызывает конструктор внедренного объекта класса
MatrixElement:
ListElement::ListElement(int i, int j, double v)
: a(i,j,v)
{
next = NULL;
}
Далее приводятся определения конструкторов, деструктора,
оператора присваивания и функции уничтожения разреженной матрицы.
В этих методах матрица рассматривается как список элементов, поэтому
их реализация аналогична реализации этих методов для работы с
обычным списком.
// конструктор матрицы из нулевых элементов
// заданных размеров
170
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М. обращение к ним из других классов невозможно. Для решения этой проблемы имеется два подхода: включение специальных методов доступа к данным в классы MatrixElement и ListElement или объявление класса MatrixList дружественным этим классам. Будем использовать в нашей программе дружественные классы. Для этого в классы MatrixElement и ListElement добавляется строка: friend class MatrixList; Поскольку имя класса MatrixList мы используем до его объявления, требуется заранее указать о существовании такого класса в программе. Для этого делается предварительное объявление класса MatrixList. Для класса элемента матрицы (MatrixElement) требуется определить только конструктор, инициализирующий индексы элемента матрицы и его значение: MatrixElement::MatrixElement(int i1, int j1, double val) { i = i1; j = j1; value = val; } Класс элемента списка (ListElement) тоже должен содержать конструктор, который вызывает конструктор внедренного объекта класса MatrixElement: ListElement::ListElement(int i, int j, double v) : a(i,j,v) { next = NULL; } Далее приводятся определения конструкторов, деструктора, оператора присваивания и функции уничтожения разреженной матрицы. В этих методах матрица рассматривается как список элементов, поэтому их реализация аналогична реализации этих методов для работы с обычным списком. // конструктор матрицы из нулевых элементов // заданных размеров 170
Страницы
- « первая
- ‹ предыдущая
- …
- 168
- 169
- 170
- 171
- 172
- …
- следующая ›
- последняя »