Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Функции, часть 3 - перегрузка функций

div.main {margin-left: 20pt; margin-right: 20pt}

Функции, часть 3 - перегрузка функций


А. Согомонян, Азбука Visual Basic


Перегрузка функций - это создание нескольких функций с одним именем, но с разными параметрами. Разные параметры значит что должно быть разным количество аргументов функции или их тип. Вот так например:

void function(int x);
void function(int x,int y);
void function(float x);

Перегруженные имена функций - это главным образом удобство записи.Пример перегруженной функции-функция sqrt( ) (извлечение квадратного корня).Она перегружена для каждого типа параметра - int,float,double,long и т.д. Вы просто пишете sqrt(4) ili sqrt (3.463),компилятор сам понимает по типу параметра какую функцию надо вызвать.

пример:
#include <iostream.h>
void f(int x);
void f(double x);

int main()
{

f(10);
f(25e9);
//для тех кто не знает- 25e9 это 25*1000000000
return 0;
}
void f(int x)
{

cout<<" type of "<<x<<" is int"<<endl;
}

void f(double x)
{

cout<<" type of "<<x<<" is float"<<endl;
}


вот что получим:
type of 10 is int
type of 2.5e+10 is float


А бывает и так что компилятору не удается определить которую функцию вызывать, и он об этом естественно сообщает.:]
как всегда пример:
#include <iostream.h>

void f(float x);
void f(double x);

int main()
{
f(2);
return 0;
}

void f(float x)
{
cout<<" type of "<<x<<" is int"<<endl;
}

void f(double x)
{
cout<<" type of "<<x<<" is float"<<endl;
}

Тут вот неясно какого типа число 2: float или double ?
вот и компилятор вам скажет:
In function `int main()':
call of overloaded `f (int)' is ambiguous
candidates are: f(float) f(double)
( Microsoft-овский компилятор про кандидатов не скажет, он не очень разговорчив :] )

Вот и все. Особо перегрузкой не увлекайтесь :]


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте