Объектно-ориентированное программирование. Богомолов А - 23 стр.

UptoLike

23
2.friend iostream & operator »
(iostream & in, имя _ класс & имя объекта)
полностью соответствует оператору » из класса iostream
1 параметрвходной поток in – типа iostream &.
3.friend iostream & operator «
(iostream & out, имя_ класса имя объекта);
соответствует оператору вывода из класса iostream.
1параметрвыходной поток out. – типа iostream &.
4.добавить оба оператора в абстрактный класс и вне класса описать как функцию.
» ~ input ( )
« - output ( )
пример:
class my
{…
friend iostream & operator »
(iostream & in, my obj);
friend iostream & operator «
(iostream out, my obj);
};
вне класса
iostream operator » (iostream & in, my & obj)
{in » obj.x » obj.y;
return in;
}
my & obj – т.к. надо вернуть введенную переменную
во внешнюю среду.
iostream & operator « (iostream & out, my obj)
{ out « obj.x « “ “ « obj.y;
out « end l ;
return out;
}
void main ( )
{ my m1, m2;
in = cin » m1»m2;
out = cout « m1 « m2;
};
Шаблоны типа
С помощью шаблонов типа можно достаточно просто определить и реализовать
без потерь в эффективности выполнения программы и, не отказываясь от статического
контроля типов, такие контейнерные классы, как списки и ассоциативные массивы.
Кроме того, шаблоны типа позволяют определить сразу для целого семейства типов
обобщенные (генерические) функции, например, такие, как sort (сортировка). В качест
-
ве примера шаблона типов и его связи с другими конструкциями языка приводится се-
мейство списочных классов. Чтобы показать способы получения программы из в зна-
чительной степени независимых частей, приводится несколько вариантов шаблонной
функции sort(). В конце определяется простой шаблон типа для ассоциативного масси-
                                        23


2.friend iostream & operator »
(iostream & in, имя _ класс & имя объекта)
полностью соответствует оператору » из класса iostream
1 параметр – входной поток in – типа iostream &.
3.friend iostream & operator «
  (iostream & out, имя_ класса имя объекта);
соответствует оператору вывода из класса iostream.
1параметр – выходной поток out. – типа iostream &.
4.добавить оба оператора в абстрактный класс и вне класса описать как функцию.
» ~ input ( )
« - output ( )
пример:
class my
{…
friend iostream & operator »
(iostream & in, my obj);
friend iostream & operator «
(iostream out, my obj);
…
};
вне класса
iostream operator » (iostream & in, my & obj)
{in » obj.x » obj.y;
return in;
}
my & obj – т.к. надо вернуть введенную переменную во внешнюю среду.
iostream & operator « (iostream & out, my obj)
{ out « obj.x « “ “ « obj.y;
out « end l ;
return out;
}
void main ( )
{ my m1, m2;
in = cin » m1»m2;
out = cout « m1 « m2;
};
                                      Шаблоны типа
        С помощью шаблонов типа можно достаточно просто определить и реализовать
без потерь в эффективности выполнения программы и, не отказываясь от статического
контроля типов, такие контейнерные классы, как списки и ассоциативные массивы.
Кроме того, шаблоны типа позволяют определить сразу для целого семейства типов
обобщенные (генерические) функции, например, такие, как sort (сортировка). В качест-
ве примера шаблона типов и его связи с другими конструкциями языка приводится се-
мейство списочных классов. Чтобы показать способы получения программы из в зна-
чительной степени независимых частей, приводится несколько вариантов шаблонной
функции sort(). В конце определяется простой шаблон типа для ассоциативного масси-