ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Виклик Опції
         

     

    Інформатика, програмування

    Виклик Опції

    Виклик функції, то є запис вираз (спісок_вираженій), можна проінтерпретувати як бінарну операцію, і операцію виклику можна перевантажувати так само, як і інші операції. Список параметрів функції 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);

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

    assoc_iterator next (vec);

    pair * p;

    while (p = next ())

    cout < name << ":" < val << "n";

    )

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

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

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

    Для підготовки даної роботи були використані матеріали з сайту http://www.realcoding.net

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status