Информатика | Динамикалық идентификация

Бұл рефератта қазіргі объектілі-бағытталған программалау қолдайтын С++ құралы — динамикалық идентификация типтері қарастырылады. Бұл құрал оригиналды С++ спецификациясы болған жоқ, дегенмен оны орындалу кезінің полиморфизімін күшейту мақсатында қосты. Прогамманы жасау барысында обьект типін анықтап алу үшін , typeid операторын қолданамы
Динамикалық идентификация типтерімен біз таныс емеспіз, өйткені олар полиморфты емес тілдерде болиады. Мысалы С және Basic секілді тілдерде.
Программа орындау барысында полиморфты емес тілдерде типтер туралы ақпарат алу керек емес. Алайда С++ секілді полиморфты тілдерде, программа толығымен іске қосылмағанынша обьектінің типі компиляцияға периодына белгілі емес болады. Біз білмейтініміздей С++ ирархия класын қолданғанда және базалық кластарда виртуальды, функция мен нұсқаушылар полиморфизмін тұрғызады.
Базалық класқа нұсқаушы ретінде осы базалық класындағы обьектілердің сілтемелері .шін қолдануға болады немесе кез-келген кластар обьектілерінде әрқашан алдын-ала белгілі бола бермейді.Олардың барлығы программаның орындалу барысында, яғни динамикалық идентификация типтерін қолданған кезде.
Прогамманы жасау барысында обьект типін анықтап алу үшін , typeid операторын қолданамыз. Ол үшін программаға басына қосу қажет. Кең таралған және қолданыста жүрген typeid типінің операторы:
Typeid(object)
Бұл жердегі object обьектінің мағнасы, яғни бізге керекті обьект типін алу үшін. Бұл жерде тек қана орнықты типті ғана емес, сонымен қатар кластық та типін ала аламыз.
Typeid операторы object обьектінің типін сипаттап,type-info обьектінің типінің сілтемесіне қайтарады.
type-info класында мынандай public мүшелері анықталған.
Bool operator==(const type_info &ob);
Bool operator!=(const type_info &ob);
Bool before (const type_info &ob);
Const char *name();
Жүктелінген операторлар “==”және ”!=” типтерді салыстаруға қызмет етеді. Before функциясы true мағнасын қайтарады, егер шақырылған обьект реті параметр ретінде қолданылған обьект алдында (обьект элементімен) тұрсын. Ал name()функциясы нұсқаушыны типтің атына қайтарады.Қарапайым typeid мысалын қарастырсақ. ....
Рефераттар
Толық