Дістемелік кешен


Итератор. Итераторлар белгілі мәліметтердің әрбір элементінің кейбір әдістерін орындауға рұқсат етеді. Fo



бет68/112
Дата22.12.2021
өлшемі0,85 Mb.
#127596
түріПрограмма
1   ...   64   65   66   67   68   69   70   71   ...   112
Байланысты:
ооп лекция
қорытынды атт 11.03.21, қорытынды атт 11.03.21, эссеге керек
Итератор.

Итераторлар белгілі мәліметтердің әрбір элементінің кейбір әдістерін орындауға рұқсат етеді.



For all терім элементтері {әрекет}

Мұндай цикл барлық терім үшін орындала алар еді, мысалы, терімнің барлық элементтерін басып шығару үшін немесе негізгі шартты қанағаттандыратын кейбір элементті іздейтін және бұл жағдайда мұндай цикл ізделінді элемент табылған кезде аяқталады.

Біз итераторларды топқа қосылған, барлық объектілерге арналған кейбір әдістерді орындауға мүмкіндік беретін класс топтарының негізгі әдісі ретінде қарастырамыз. Итераторлар мысалына Show әдісі келеді.

Біз топтың барлық элементтерінің әрекеттерін, объектінің біреуімен ғана емес, пайдаланушының өз бетімен берген функциясымен орындауға рұқсат ететін итератордың болуын қалаймыз. Егер бұл функцияны оған функция көрсеткіші арқылы жіберсек, мұндай итераторды іске асыруға болады

Функцияға көрсеткіш типін келесі түрде анықтайық:

typedef void(*PF)(TObject*,< қосымша параметрлер>);

Функцияда TObject немесе TObject* типті міндетті параметр болады. Осы параметрлер арқылы қажетті айқын әрекеттерді орындау үшін оған объект беріледі.

Итератор-әдіс келесі түрде жазылады:

void TGroup::ForEach(PF action,< қосымша параметрлер >);

мұндағы


action функцияға топтың әрбір элементі үшін шақырылатын жалғыз міндетті параметрлі көрсеткіш;

қосымша параметрлер  жіберілген шақырылушы функцияның параметрлері.

Содан соң функция көрсеткіші анықталады және функция итераторына тапсырылған инициализацияланады.



PF pf=myfunc;
Сол уақытта итератор шақырылады, мысалы, қосымша параметріне арналған int типі үшін мынадай:

gr.ForEach(pf,25);

мұндағы gr  топ-объект.





Достарыңызбен бөлісу:
1   ...   64   65   66   67   68   69   70   71   ...   112




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет