ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС № 6-7
ОБЪЕКТІЛЕР ИЕРАРХИЯСЫ. ТОПТАР. ИТЕРАТОРЛАР.
Мақсаты: объектілі топтарды құруды үйрену және итераторлы әдістерді қолдана білу.
Қысқаша теориялық мәліметтер
Топ
Топ бұл басқа объектілер қосылған объект. Топқа кіруші объектілер топ элементтері деп аталады. Топ элементтері топ бола алады.
Топтардың мысалдары:
1. Мәліметтерді, батырмаларды енгізу және редактілеу жолын, таңдау тізімдерін, диалогьік терезелерді және т.б.
2. Өте ұсақ түйіндерден құралған агрегат.
3. Өсімдіктерден, суару жүйелерінен және өсіру жоспарынан құралған бақша.
4. Ұйымдық құрылымдар (мысалы, ФАКУЛЬТЕТ, КАФЕДРА, СТУДЕНТТІК ТОП).
Біз «топты» «контейнерден» ажыратамыз. Контейнер басқа мәліметтерді сақтау үшін қолданылады. Контейнер мысалдары: Turbo Vision кітапханасының TCollection класс объектілері және C++-тегі STL кітапханасынеың контейнерлік кластар объектілері (массивтер, тізімдер, ширеттер).
Контейнерге қарағанда біз топты тек басқа кластар объектілерін сақтайтын класс ретінде ғана емес, сонымен қатар өз элементтері қасиеттерінен шықпайтын меншікті қасиеттеріне ие класс ретінде түсінеміз.
Топ агрегация негізінде салынған иерархияның екінші түрін ( бірінші түрі - мұрагерлік негізіндегі кластар иерархиясы) объектілер иерархиясын (үлгі иерархиясы бүтін/бөлім) береді.
Топты бірнеше тәсілмен жүзеге асыруға болады:
«Топ» класының өрістері объект типті мәліметтерді қамтиды. Осылайша «топ» объектісі мәліметтер ретінде не тікелей өз элементтерін, не оларға көрсеткіштерді қамтиды.
class TWindowDialog: public TGroup
{
protected:
TInputLine input1;
TEdit edit1;
TButton button1;
/*другие члены класса*/
};
Топтарды жүзеге асырудың мұндай әдісі C++Builder-де қолданылады.
Топ топқа қосылған объектілердің байланысқан тізімінің басына сілтейтін TObject* типті last мүше-мәліметін қамтиды. Бұл жағдайда объектілер тізімдегі келесі элементке сілтейтін TObject* типті next өрісін қамтуы қажет. Мұндай әдіс топтарды Turbo Vision-де жүзеге асырған кезде қолданылады.
3. TItem типті құрылымдардың байланысқан тізімі құрылады:
struct TItem
{TObject* item;
TItem* next;};
Item өрісі топқа қосылған объектке сілтейді. Топ TItem типті құрылымдардың байланысқан тізімінің басына сілтейтін TItem * типті last өрісін қамтиды.
Егер топ элементтерінің оның өрістері мен әдістеріне қатынауы қажет болса, онда TObject типті объект сол элементтің өзіне сілтейтін TGroup* типті owner өрісін қамтуы керек.
Топ әдістері.
Топтың жұмыс жасау үшін қажет екі әдіс бар::
1) void Insert(TObject* p);
Топқа элементті кірістіреді.
2) void Show();
Топты қарап шығуға мүмкіндік береді.
Сонымен қатар топ келесі әдістерді қамти алады:
1) int Empty();
Топта ең болмағанда бір элемент бар екендігін көрсетеді.
2) TObject* Delete(TObject* p);
Топтан эелементті өшіреді, бірақ оны жадыда сақтайды.
3) void DelDisp(TObject* p);
Элементті топтан да, жадыдан да өшіреді..
Объектілер иерархиясы.
Кластардың иерархиясы мұрагерлік принципінің иерархиясы болып табылады, яғни «бұл оның бір түрі». Мысалы, «жұмысшы жұмысшылардың бірі», «автокөлік» «транспорттың» бір түрі. Бұған қарағанда объектілер иерархиясы – бұл кіру принципі бойынша иерархия, яғни «бұл оның бөлігі». Мысалы, «құру – завод бөлігі», «двигатель – машина бөлігі». Сонымен, төменгі деңгей иерархиясының объектілері олар үшін топ болып табылатын жоғары деңгей иерархиясының объектілеріне кірістіріледі.
Достарыңызбен бөлісу: |