Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Вызов Функції

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Вызов функції, тобто запис вираз (список_выражений), можна проінтерпретувати як бінарну операцію, і операцію виклику можна перевантажувати як і, як та інші операції. Список параметрів функції operator () обчислюється та перевіряється у відповідність із звичайними правилами передачі параметрів. Перегружающая функція може бути корисною головним чином заради визначення типів з однією операцією… Читати ще >

Вызов Функції (реферат, курсова, диплом, контрольна)

Вызов Функции

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

Для типу асоціативного масиву assoc ми визначили итератор. Це можна зробити, визначивши клас assoc_iterator, робота, що у тому, щоб у певному порядку поставляти елементи з assoc. Итератору потрібен доступом до даним, які у assoc, й тому він зроблено іншому:

class assoc {.

friend class assoc_iterator;

pair* vec;

int max;

int free;

public:

assoc (int);

int& operator[](char*);

};

Итератор окреслюється.

class assoc_iterator{.

assoc* cs; // поточний масив assoc.

int і; // поточний индекс.

public:

assoc_iterator (assoc& p. s) { cs = &p.s; і = 0; }.

pair* operator ()().

{ return (ifree)? &cs->vec[i++]: 0; }.

};

Надо форматувати assoc_iterator для масиву assoc, після що він повертатиме покажчик нові pair від цього масиву всякий раз, що його будуть активізувати операцією (). Після досягнення кінця масиву воно 0:

main () // вважає входження кожного слова у вводе.

{.

const MAX = 256; // більше найбільшого слова.

char buf[MAX];

assoc vec (512);

while (cin>>buf) vec[buf]++;

assoc_iterator next (vec);

pair* p;

while (p = next ()).

cout << p->name << «: «<< p->val << «n » ;

}.

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

Конечно, таке застосування об'єктів до подання итераторов ніяк особливо з перевантаженням операцій не пов’язано. Багато людей люблять використовувати итераторы з цими операціями, як first (), next () і last () (перший, наступний і другий).

Список литературы

Для підготовки даної роботи було використані матеріали із російського сайту internet.

Показати весь текст
Заповнити форму поточною роботою