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

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
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