69707

Перевантаження функцій

Лекция

Информатика, кибернетика и программирование

Перевантаження функцій — це використання одного імені для декількох функцій. Секрет перевантаження полягає в тому, що кожне перевизначення функції повинне використовувати або інші типи параметрів, або іншу їх кількість. Тільки ці відмінності дозволяють компілятору визначати...

Украинкский

2015-01-11

27.5 KB

1 чел.

Тема: Перевантаження функцій

Перевантаження функцій — це використання одного імені для декількох функцій. Секрет перевантаження полягає в тому, що кожне перевизначення функції повинне використовувати або інші типи параметрів, або іншу їх кількість. Тільки ці відмінності дозволяють компілятору визначати, яку функцію слід викликати в тому або іншому випадку. Наприклад, в наступній програмі функція myfunc () перегружена для різних типів параметрів.

#include <iostream>

using namespace std;

int myfunc(int i);

// Ці варіанти розрізняються типами параметрів

double myfunc(double і);

int main()

{

cout << myfunc(10)<< " "; // Виклик функції myfunc(int i)

cout << myfunc(5.4); //Виклик функції myfunc(double i)

return 0;

}

double myfunc(double i) { return і; }

int myfunc(int i) { return і; }

В наступній програмі перевантажені варіанти функції myfunc () використовують різну кількість параметрів.

#include <iostream>

using namespace std;

int myfunc(int i);

// Ці варіанти розрізняються кількістю параметрів

int myfunc(int і, int j);

int main()

{

cout << myfunc(10)<< " "; // Виклик функції myfunc(int i)

cout << myfunc(4, 5); // Виклик функції myfunc(int i, int j)

return 0;

int myfunc(int i)

{

return i;

}

int myfunc (int і, int j )

{

return x*j ;

}

Слід пям'ятати, що перевантажені функції повинні відрізнятися типами або кількістю параметрів. Тип значення, яке повертається, не дозволяє перенавантажувати функції. Наприклад, наступний варіант перевантаження функції myfunc () невірний.

int myfunc(int i); // Помилка: різних типів повертаємого

float myfunc(int і);

// значення недостатнь для перевантаження

Іноді оголошення двох функцій зовні відрізняються, але фактично співпадають. Приклад такого оголошення:

void f (int *p) ;

void f(int p[]); // Помилка, вирази *р і р[] еквівалентні

Треба пам'ятати, що компілятор не розрізняє виразу *р і р [ ]. Хоча зовні два прототипи функції f розрізняються, насправді вони повністю співпадають.


 

А также другие работы, которые могут Вас заинтересовать

79600. Изучение тревожности у детей 6-7 лет средствами игровой терапии 643 KB
  Гипотеза нашего исследования основана на том, что коррекционная работа будет способствовать снижению тревожностей у детей 6-7 лет, Психолог обладает навыками моделирования и подбора специальных коррекционных упражнений, программ по преодолению тревожности, которые могут осуществлять адресную, индивидуальную коррекцию.
79601. ПРАКТИЧЕСКИЕ АСПЕКТЫ ПРИМЕНЕНИЯ ТЕАТРАЛИЗАЦИИ В СОЦИОКУЛЬТУРНОЙ СФЕРЕ (НА ПРИМЕРЕ СОЦИОКУЛЬТУРНОГО PR-ПРОЕКТА «ЭТЮД») 3.8 MB
  Все вышесказанное определило цель нашего дипломного проекта – охарактеризовать театрализацию как технологию связей с общественностью применительно в социокультурной сфере и реализовать социокультурный PR-проект, направленный на социализацию детей-сирот и детей, оставшихся без попечения родителей...
79602. СОЧЕТАНИЕ ТРАДИЦИОННЫХ И КОМПАРАТИВИСТСКИХ НАЧАЛ В ПРОЦЕССЕ КОНСТИТУЦИОННОГО РАЗВИТИЯ ПОЛИТИЧЕСКОЙ СИСТЕМЫ ЯПОНИИ 108 KB
  В течение длительного исторического периода Япония развивалась, подвергаясь культурному влиянию таких стран-соседей, как Китай и Корея, и поддерживала связи только с этими странами. В XV–XVI вв. в Японию проникли португальские и испанские миссионеры, благодаря которым страна впервые соприкоснулась...
79603. ПРАВО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ В ИНТЕРНЕТ 90 KB
  По существу, общественные отношения, складывающиеся в сети, развиваются «параллельно» реальным отношениям, в то же время совпадая с последними по содержанию. Сеть используется во всех сферах жизнедеятельности общества: политической, экономической, культурной и др.
79604. НОВОЕ В РАЗВИТИИ РОССИЙСКОГО АВТОРСКОГО ПРАВА 74 KB
  Поводом для написания настоящей статьи послужило участие в семинаре организованном Российским авторским обществом при финансовой поддержке Tcis проходившем в г. Широкий и представительный состав участников этого мероприятия позволил сделать ряд выводов о тенденциях современного авторского права...
79605. ЗАЩИТА ПРАВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ 81 KB
  Соответственно право на защиту здесь будет пониматься как субъективное гражданское право юридически закрепленная возможность управомоченного лица использовать специальные меры правоохранительного характера которая включает в себя как материально-правовые так и процессуальные меры.
79606. О НЕКОТОРЫХ МЕТОДОЛОГИЧЕСКИХ АСПЕКТАХ ИЗУЧЕНИЯ НОРМАТИВНО-ПРАВОВЫХ СИСТЕМ СУБЪЕКТОВ РФ В СВЕТЕ ПРОБЛЕМ ФЕДЕРАЛИЗМА 81 KB
  При изучении нормативно-правовых систем субъектов РФ по нашему мнению необходимо учитывать следующие моменты: отечественная доктрина не редко отрицает деление права в рамках федерации на федеральное право и право субъектов.
79607. О СУЩЕСТВУЮЩИХ ОПРЕДЕЛЕНИЯХ ТЕРМИНА «ЗАКОНОДАТЕЛЬСТВО» В ОТЕЧЕСТВЕННОМ ПРАВОВЕДЕНИИ 111.5 KB
  Подзаконные нормативные правовые акты если они включены в круг источников права отделяются от понятия законодательство и как правило закрепляются как самостоятельные источники наряду с законодательством законами. Речь идет о понимании законодательства как всего объема...
79608. СОВОКУПНОСТЬ ПРЕСТУПЛЕНИЙ: ИСТОРИЯ РАЗВИТИЯ И ПРОБЛЕМЫ СООТНОШЕНИЯ РЕАЛЬНОЙ И ИДЕАЛЬНОЙ СОВОКУПНОСТИ 94.5 KB
  Квалификация при совокупности преступлений всегда представляла определенную трудность особенно в тех случаях когда преступления входящие в предмет судебной оценки существенно отличаются друг от друга по своему характеру направленности умысла и совершены в различной последовательности.