ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
if(i == 1)
Kramer();
else
InverseMatrix();
}
catch(ZeroDevideException e)
{
JordanGauss();
}
else
JordanGauss();
}
Отметим, что если в качестве обобщенного типа выступает
пользовательский тип данных, то в нем должны быть определены методы,
которые используются в шаблоне. Например,
• в шаблоне класса Matrix создается массив элементов обобщенного типа
T:
a[i] = new T [n];
Для этого вызывается конструктор класса T без параметров;
• в шаблоне класса Matrix могут создаваться объекты с
начальной инициализацией:
T det = 0.0;
В этом случае конкретные пользовательские классы, используемые
при подстановке, должны содержать конструкторы с параметром типа
присваиваемого значения. Для приведенного примера в подставляемых
классах должен быть определен конструктор с параметром типа double;
• в шаблоне класса Matrix осуществляется присваивание
элементам матрицы новых значений. Поэтому в пользовательском классе,
который будет подставлен вместо обобщенного типа, необходимо
определить оператор присваивания (кроме случаев, когда
предоставляемый компилятором оператор работает корректно);
• если в шаблоне класса используются арифметические операции,
операции сравнения с объектами различных типов, операции
ввода/вывода и др., то в пользовательском классе, который будет
подставлен вместо обобщенного типа, необходимо определить эти
операции.
226
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М. if(i == 1) Kramer(); else InverseMatrix(); } catch(ZeroDevideException e) { JordanGauss(); } else JordanGauss(); } Отметим, что если в качестве обобщенного типа выступает пользовательский тип данных, то в нем должны быть определены методы, которые используются в шаблоне. Например, • в шаблоне класса Matrix создается массив элементов обобщенного типа T: a[i] = new T [n]; Для этого вызывается конструктор класса T без параметров; •в шаблоне класса Matrix могут создаваться объекты с начальной инициализацией: T det = 0.0; В этом случае конкретные пользовательские классы, используемые при подстановке, должны содержать конструкторы с параметром типа присваиваемого значения. Для приведенного примера в подставляемых классах должен быть определен конструктор с параметром типа double; • в шаблоне класса Matrix осуществляется присваивание элементам матрицы новых значений. Поэтому в пользовательском классе, который будет подставлен вместо обобщенного типа, необходимо определить оператор присваивания (кроме случаев, когда предоставляемый компилятором оператор работает корректно); • если в шаблоне класса используются арифметические операции, операции сравнения с объектами различных типов, операции ввода/вывода и др., то в пользовательском классе, который будет подставлен вместо обобщенного типа, необходимо определить эти операции. 226
Страницы
- « первая
- ‹ предыдущая
- …
- 224
- 225
- 226
- 227
- 228
- …
- следующая ›
- последняя »