Информатика. Общая информатика. Основы языка C++. Мамонова Т.Е. - 174 стр.

UptoLike

Составители: 

cout<<«\nMAX=«<<max(a2,b2)<<«\n»;
cout<<«\nfor char*:\n»;
cout<<«a=?»;cin>>s1;
cout<<«b=?»;cin>>s2;
cout<<«\nMAX=«<<max(s1,s2)<<«\n»;
}
Правила описания перегруженных функций:
1) Перегруженные функции должны находиться в одной области
видимости.
2)Перегруженные функции могут иметь параметры по умолчанию,
при этом значения одного и того же параметра в разных функциях
должны совпадать. В разных вариантах перегруженных функций может
быть разное количество умалчиваемых параметров.
3)Функции не могут быть перегружены, если описание их парамет-
ров отличается только модификатором const или наличием ссылки.
Например, функции int&f1(int&,const int&){. . . } и
int f1(int,int){. . . } не являются перегруженными, т.к.
компилятор не сможет узнать какая из функций вызывается: нет синтак-
сических отличий между вызовом функции, которая передает параметр
по значению и функции, которая передает параметр по ссылке.
4.8.10. Шаблоны функций
Шаблоны вводятся для того, чтобы автоматизировать создание
функций, обрабатывающих разнотипные данные. Например, алгоритм
сортировки можно использовать для массивов различных типов.
При перегрузке функции для каждого используемого типа определяется
своя функция. Шаблон функции определяется один раз, но определение
параметризируется, т.е. тип данных передается как параметр шаблона.
Формат шаблона:
template <class имя_типа [,class имя_типа]>
заголовок_функции
{тело функции}
Таким образом, шаблон семейства функций состоит из 2 частей
заголовка шаблона: template<список параметров шаблона> и обыкно-
венного определения функции, в котором вместо типа возвращаемого
значения и/или типа параметров, записывается имя типа, определенное
в заголовке шаблона.
Пример 84
174