ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
else
cout << "r1 <= r2" << endl;
// вызов оператора "+" для двух дробей
d = r1 + r2;
cout << "r1+r2=" << d;
// вызов оператора "+" для дроби и числа
d = r1 + (-11);
cout << "r1+(-11)=" << d;
// вызов оператора "*" для числа и дроби
d = 5 + r1;
cout << "5 + r1 = " << d;
// вызов оператора преобразования дроби к типу double
Fraction q(1,3);
double f = q;
. . .
}
3.1.4. Пример использования массива дробей (быстрая
сортировка)
Тип Fraction может использоваться в качестве подставляемого
вместо обобщенного типа данных при генерации функций и классов на
основе шаблонов. Приведем пример использования шаблона функции
быстрой сортировки для массива дробей. В сгенерированном методе с
типом Fraction будут вызываться конструктор копирования и
конструктор по умолчанию, операторы ">=", "<=" и "=". Эти функции
должны быть определены в классе или предоставлены компилятором. В
нашем случае будут корректно использоваться конструктор копирования
и оператор "=", предоставленные компилятором.
template <class T> void QuickSort (T* m, int n)
{
if(n <= 1)
return;
int i = 0, j = n - 1;
// вызывается конструктор копирования
// для создания объекта selected и конструктор
// по умолчанию для создания объекта temp
T selected = m[0], temp;
while(i != j)
{
// вызывается оператор ">="
132
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
else
cout << "r1 <= r2" << endl;
// вызов оператора "+" для двух дробей
d = r1 + r2;
cout << "r1+r2=" << d;
// вызов оператора "+" для дроби и числа
d = r1 + (-11);
cout << "r1+(-11)=" << d;
// вызов оператора "*" для числа и дроби
d = 5 + r1;
cout << "5 + r1 = " << d;
// вызов оператора преобразования дроби к типу double
Fraction q(1,3);
double f = q;
. . .
}
3.1.4. Пример использования массива дробей (быстрая
сортировка)
Тип Fraction может использоваться в качестве подставляемого
вместо обобщенного типа данных при генерации функций и классов на
основе шаблонов. Приведем пример использования шаблона функции
быстрой сортировки для массива дробей. В сгенерированном методе с
типом Fraction будут вызываться конструктор копирования и
конструктор по умолчанию, операторы ">=", "<=" и "=". Эти функции
должны быть определены в классе или предоставлены компилятором. В
нашем случае будут корректно использоваться конструктор копирования
и оператор "=", предоставленные компилятором.
template void QuickSort (T* m, int n)
{
if(n <= 1)
return;
int i = 0, j = n - 1;
// вызывается конструктор копирования
// для создания объекта selected и конструктор
// по умолчанию для создания объекта temp
T selected = m[0], temp;
while(i != j)
{
// вызывается оператор ">="
132
Страницы
- « первая
- ‹ предыдущая
- …
- 130
- 131
- 132
- 133
- 134
- …
- следующая ›
- последняя »
