ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
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
- …
- следующая ›
- последняя »
