Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Шаблони функцій

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

Локальні та глобальні змінні

План

1. Класи пам’яті.

3. ПЕРЕВАНТАЖЕННЯ ФУНКЦІЙ_______________________________________________________

Під час її виклику компілятор автоматично проаналізує сигнатури та виконає код відповідної функції.

Приклад: Використовуючи перевантаження функції, скласти програму для упорядкування трьох уведених даних або символьного, або цілого типу.

#include <iostream.h>

void Sort(int n1, int n2, int n3);

void Sort(char n1, char n2, char n3);

void main();

{

int i1, і2, і3, k;

char c1,c2, c3;

cout << "Уведіть 1 для впорядкування символів, 2 - для чисел \n';

сіn >> k;

if (k==1)

{

cout << "Уведіть три символи"; сіn >> с1 >> с2 >> с3;

Sort(c1, с2, с3);

}

if (k==2)

{

cou t << "Уведіть три числа"; сіn >> і1 >> і2 >> і3;

Sort(і1, і2, і3);

}

}

//-------------------------------------------------------------------------------------

void Sort(int n1, int n2, int nЗ)

{

int c;

if (n1>n2) {c = n1; n1=n2; n2 = c;}

if (n2>n3) {с =n2; n2 =n3; n3 = с;}

if (n1>n2) {c = n1; n1=n2; n2 = c;}

cout << n1 << "\t" << n2 << "\t << n3;

}

//-------------------------------------------------------------------------------------

void Sort(char n1, char n2, char n3)

{

char c;

if (n1>n2) {c = n1; n1=n2; n2 = c;}

if (n2>n3) {с =n2; n2 =n3; n3 = с;}

if (n1>n2) {c = n1; n1=n2; n2 = c;}

cout << n1 << "\t" << n2 << "\t << n3;

}

Зауваження. Для функцій, які відрізняються типом значен­ня, яке вони повертають, і мають однаковий набір аргументів, перевантаження у мові C++ не визначено, тобто їм надавати однакові імена не можна.

4. ШАБЛОНИ ФУНКЦІЙ_______________________________________________________________

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

Синтаксис шаблону функції можна описати так:

template <class назва узагальненого типу> <тип функції><назва функції>(список формальних параметрів);

У списку формальних параметрів можуть бути присутні лише параметри узагальнюючих типів.

Якщо шаблон описаний перед головною програмою, то він, як і звичайна функція, оголошення не потребує.

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


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

 

#include<iostream.h>

#include<conio.h>

template <class Mytype> //Оголошення

void sorting(Mytype n1,Mytype n2, Mytype n3); //шаблону

void main()

{

clrscr();

int i1, і2, і3, k;

char c1,c2, c3;

cout<<"Введіть 1 для впорядкування символів, 2 - чисел: ";

cin>>k;

if (k==1)

{

cout << "Уведіть три символи";

сіn >> с1 >> с2 >> с3;

Sort(c1, с2, с3);

}

if (k==2)

{

cou t << "Уведіть три числа";

сіn >> і1 >> і2 >> і3;

Sort(і1, і2, і3);

}

getch();

}

//--------------------------------------------------------------

template <class Mytype> // Опис шаблону

void sort(Mytype n1, Mytype n2,Mytype n3)

{

Mytype c;

if (n1>n2) {c = n1; n1=n2; n2 = c;}

if (n2>n3) {с =n2; n2 =n3; n3 = с;}

if (n1>n2) {c = n1; n1=n2; n2 = c;}

cout << n1 << "\t" << n2 << "\t << n3;

}

<== предыдущая лекция | следующая лекция ==>
Калькуляція та її види. Класифікація статей калькуляції | Тема: Вимушені електричні коливання. Змінний струм. Закон Ома для замкнутого кола змінного струму. Потужність у колі змінного струму. Резонанс струмів та напруг
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 520; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.