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


 

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

50193. Нечеткая логика 68 KB
  Различать степени изменения лингвистической переменной в трех степенях – «Очень – Нормально – Слабо» Б. Изменять порог чувствительности. Маленький – средний - большой
50194. Работа с текстовыми файлами 55.5 KB
  Цель: Приобрести практические навыки в проектировании структуры файла а также закрепить навыки по вводу данных в текстовый файл и их обработке. Этим звеном является файловая структура. Ввод и вывод информации в файл обеспечивается с помощью так называемого указателя на файл который является указателем на файловую структуру в памяти.
50195. ИЗУЧЕНИЕ ПРИНЦИПА ДЕЙСТВИЯ И ХАРАКТЕРИСТИК ЭЛЕКТРОННЫХ ЛАМП 336.5 KB
  Важнейшей характеристикой диода является зависимость силы тока текущего через лампу анодного тока от разности потенциалов между катодом и анодом анодного напряжения. Анодный ток зависит от анодного напряжения и от температуры катода. При постоянной температуре катода анодный ток возрастает с увеличением анодного напряжения . Поскольку механизм возникновения электрического тока в этом случае отличается от механизма возникновения тока в проводниках то зависимость анодного тока от анодного напряжения не описывается законом Ома.
50197. Развитие русской социологической мысли: этапы, школы, представители 17.23 KB
  Социологическая мысль в России развивается как часть общемировой социологической науки. Изменение общественных отношений, вызванное развитием капитализма в России после реформ 60-70-х гг.
50198. Нечеткая логика 68 KB
  Согласно заданным вариантам разработать программу на любом алгоритмическом языке, способную: А. Различать степени изменения лингвистической переменной в трех степенях – «Очень – Нормально – Слабо» Б. Изменять порог чувствительности. Негр – Мулат – Белый
50199. ВИВЧЕННЯ ДИФРАКЦІЇ ФРАУНГОФЕРА НА ДВОХ ЩІЛИНАХ 132 KB
  Всі деталі установки розміщаються в рейтерах. Пластини зі щілинами встановлюються в тримач, який містить пристрій, що дозволяє регулювати і встановлювати пластини відносно світлового променя. На оптичній лаві закріплена масштабна лінійка довжиною 1м з ціною поділки 1мм.
50200. Нечеткая логика 69 KB
  А. Различать степени изменения лингвистической переменной в трех степенях – «Очень – Нормально – Слабо» Б. Изменять порог чувствительности. Адский – земной – святой
50201. Основы построения систем и комплексов подвижной радиосвязи. Методическая разработка 117.5 KB
  МЕТОДИЧЕСКАЯ РАЗРАБОТКА ДЛЯ ПРОВЕДЕНИЯ КУРСОВОЙ РАБОТЫ по учебной дисциплине Средства и комплексы подвижной радиосвязи ДД41505 Тема № 03 Основы построения систем и комплексов подвижной радиосвязи Занятие № 21 Расчет основных характеристик сети подвижной радиосвязи Обсуждена на заседании ПМК . Учебные цели Сформировать навыки самостоятельного применения полученных знаний для расчета и обоснования основных характеристик сети подвижной радиосвязи. Исходные данные: стандарт системы подвижной радиосвязи; ТТХ элементов сети;...