Категория
Информатика
Тип
реферат
Страницы
2 стр.
Дата
07.06.2010
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20661.zip — 3.75 kb
  • vyzov-funkcii_20661_1.rtf — 13.65 Kb
  • Readme_docus.me.txt — 125 Bytes
Рейтинг
10  из 10
Оценок
1
Оцените работу
Хорошо  или  Плохо


Текст работы

Вызов Функции Alena Alena
Вызов
Функции
Вызов функции, то есть запись выражение (список_выражений), можно
проинтерпретировать как бинарную операцию, и операцию вызова можно перегружать так же, как и другие операции. Список параметров функции 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 i; // текущий индекс
public:
assoc_iterator(assoc& s) cs = &s; i = 0;
pair* operator()()
return (ifree)? &cs->vec[i++] : 0;
;
Надо инициализировать assoc_iterator для массива assoc, после чего
он будет возвращать указатель на новую pair из этого массива всякий раз, когда его будут активизировать операцией (). По достижении конца массива он возвращает 0:
main() // считает вхождения каждого слова во вводе
const MAX = 256; // больше самого большого слова
char buf[MAX];
assoc vec(512);



Ваше мнение



CAPTCHA