Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Перегрузка функций
Цель перегрузки состоит в том, чтобы функция с одним именем по-разному выполнялась и возвращала разные значения при обращении к ней с различными типами и различным числом фактических параметров. Для обеспечения перегрузки необходимо для каждой перегруженной функции определить возвращаемые значения и передаваемые параметры так, чтобы каждая перегруженная функция отличалась от другой функции с тем же именем. Компилятор определяет какую функцию выбрать по типу фактических параметров. Пример. #include<iostream.h> #include <string.h> int max(int a,int b) { if(a>b)return a; else return b; } float max(float a,float b) { if(a>b)return a; else return b; } char*max(char*a,char*b) { if(strcmp(a,b)>0) return a; else return b; } void main() { int a1,b1; float a2, b2; char s1[20]; char s2[20]; cout<<"\nfor int:\n"; cout<<"a=?";cin>>a1; cout<<"b=?";cin>>b1; cout<<"\nMAX="<<max(a1,b1)<<"\n"; cout<<"\nfor float:\n"; cout<<"a=?";cin>>a2; cout<<"b=?";cin>>b2; 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){... } – не являются перегруженными, т. к. компилятор не сможет узнать какая из функций вызывается: нет синтаксических отличий между вызовом функции, которая передает параметр по значению и функции, которая передает параметр по ссылке. Date: 2015-08-15; view: 391; Нарушение авторских прав |