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 розрізняються, насправді вони повністю співпадають.


 

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

4840. Создание установочного диска c помощью Install Shield Express 425.5 KB
  Создание установочного диска Цель: Научить студентов создавать установочные диски. Задачи: Воспитательная: работа над собой. Учебная: создание приложений. Развивающая: развитие внимательности. План занятия. Организационный момент. Изучен...
4841. Технические средства автоматизации в системах управления 223 KB
  Сбор информации о текущем состоянии технологического объекта управления (ТОУ); определение критериев качества работы ТОУ; нахождение оптимального режима функционирования ТОУ и оптимальных управляющих воздействий, обеспечивающих экстремум критериев качества; реализация найденного оптимального режима на ТОУ.
4842. Информатика - Основы алгоритмизации и программирование 732.5 KB
  Излагаемый материал предусматривает три уровня сложности в соответствии с требованиями системы Ритм. Часть вопросов можно вынести на рассмотрение на практических занятиях, некоторые вопросы могут быть прочитаны факультативно для студентов, желающих...
4843. Основы алгоритмизации. Основные аспекты алгоритмизации 306 KB
  Введение Процесс решения любой задачи на компьютере состоит из нескольких последовательных шагов или этапов. Наиболее важными из них являются следующие: постановка задачи (формализация задачи) алгоритмическая часть (алгоритмизация)...
4844. Природа - це казка. Виховний захід 102.5 KB
  Мета. Сприяти формуванню екологічної свідомості та екологічної культури у молоді показати унікальний світ природи планети Земля навчати бережливому ставленню молоді до природи. 1- й. Сьогодні іскристо вирує наснага І щедрість природа дарує всякчас...
4845. Збережемо природу рідного краю. Виховний захід 509 KB
  Мета: Вчити учнів усвідомлювати себе частиною світу природи формувати інтерес до навколишнього середовища розвивати спостережливість, увагу, бажання допомогти довкіллю виховувати в школярів дбайливе і гуманне ставлення до природи, бажання милуват...
4846. Семейный круг идеальная среда для роста Основа основ - родительский дом 274.86 KB
  В семейном кругу мы с вами растём Основа основ - родительский дом Цели: развивать творческий потенциал каждого ученика - формировать коммуникативную компетентность в процессе совместной творческой деятельности - формирование социальной компетентно...
4847. Цільові проекти як основа інноваційної моделі допрофільної підготовки 340.5 KB
  Цільові проекти як основа інноваційної моделі допрофільної підготовки Успішна реалізація профільного навчання у старшій школі неможлива без якісної допрофільної підготовки, яка покликана створити умови для професійної орієнтації учнів, сприяти усвід...
4848. Активізація логічного мислення учнів на уроках математики 230 KB
  Логічними, як правило, називають нестандартні задачі, які дають змогу навчити учнів розмірковувати, критично мислити, знаходити правильне розв’язання проблеми, застосовувати знання на практиці, переносити відомі йому способи дій у нові дл...