Информатика | Динамикалық идентификация
Динамикалық идентификация типтері.
Динамикалық идентификация типтерімен біз таныс емеспіз, өйткені олар полиморфты емес тілдерде болиады. Мысалы С және 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 мысалын қарастырсақ.
Мысалы
# include
# include
Using namespace std;
class MyClass {
//…
};
int main()
{
int i , j;
float f;
MyClass ob;
// обьект типін алу үшін 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 мысалын қарастырсақ.
Мысалы
# include
# include
Using namespace std;
class MyClass {
//…
};
int main()
{
int i , j;
float f;
MyClass ob;
// обьект типін алу үшін typeid операторын қолдану .....
Толық нұсқасын 30 секундтан кейін жүктей аласыз!!!
Әлеуметтік желілерде бөлісіңіз:
Facebook | VK | WhatsApp | Telegram | Twitter
Қарап көріңіз 👇
kz | Рефераттар
Пайдалы сілтемелер:
» Туған күнге 99 тілектер жинағы: өз сөзімен, қысқаша, қарапайым туған күнге тілек
» Абай Құнанбаев барлық өлеңдер жинағын жүктеу, оқу
» Дастархан батасы: дастарханға бата беру, ас қайыру
Соңғы жаңалықтар:
» 2025 жылы Ораза және Рамазан айы қай күні басталады?
» Утиль алым мөлшерлемесі өзгермейтін болды
» Жоғары оқу орындарына құжат қабылдау қашан басталады?