1. typeid opretorni vazifasini nimalardan iborat. Misollar keltiring


Download 339.73 Kb.
bet1/45
Sana03.11.2023
Hajmi339.73 Kb.
#1742335
  1   2   3   4   5   6   7   8   9   ...   45
Bog'liq
dastulash javob


Masofaviy ta’lim talabalari uchun Yakuniy Savollar dasturlash 2


1. typeid opretorni vazifasini nimalardan iborat. Misollar keltiring.
typeid operatori, C++ dasturlash tilida mavjud bo'lgan bir operatordir. Uning vazifasi, operand sifatida berilgan obyektni yoki boshqacha bir tipni identifikatsiya qilishdan iborat bo'ladi. typeid operatori tomonidan qaytariladigan qiymat, type_info nomli standart sinifidan tashqari bo'lib, bu sinif obyekti ma'lum bir tip haqida ma'lumotlarni saqlaydi.
Quyidagi misolda typeid operatorining qanday qilib ishlatilishini ko'rsataman:
#include
#include

int main() {


int a = 5;
double b = 3.14;
const char* c = "Hello";

std::cout << typeid(a).name() << std::endl;


std::cout << typeid(b).name() << std::endl;
std::cout << typeid(c).name() << std::endl;

return 0;


}
Yuqoridagi kodning natijasi quyidagicha bo'ladi:
i
d
PKc
Bu natijalar C++ dasturlash tilidagi obyektlar tipining identifikatorlari. Misolda, a o'zgaruvchisi int tipidagi obyekt bo'lib, i - bu int tipining identifikatorini anglatadi. b o'zgaruvchisi double tipidagi obyekt bo'lib, d - bu double tipining identifikatorini anglatadi. c o'zgaruvchisi esa const char* tipidagi obyekt bo'lib, PKc - bu const char* tipining identifikatorini anglatadi.

Boshqa misollar uchun, typeid operatorini sinf obyektlari bilan ham ishlatishingiz mumkin. Quyidagi misolda bu ko'rinish ko'rsatilgan:


#include


#include

class Base {


virtual void foo() {}
};

class Derived : public Base {};


int main() {


Base* basePtr = new Derived();

if (typeid(*basePtr) == typeid(Base)) {


std::cout << "basePtr points to an object of Base class" << std::endl;
} else if (typeid(*basePtr) == typeid(Derived)) {
std::cout << "basePtr points to an object of Derived class" << std::endl;
}

delete basePtr;


return 0;


}
Yuqoridagi kod natijasida, basePtr o'zgaruvchisi Base sinfi obyektini yashiradi, lekin aslida Derived sinfining obyektini ko'rsatadi. typeid operatori yordamida obyektning haqiqiy tipini aniqlashimiz mumkin va shuning asosida mos holatlarni tekshirishimiz mumkin. Misolda, basePtr o'zgaruvchisi haqiqiy obyektni Derived sinfi obyekti sifatida ko'rsatadi va shu sababli typeid operatori yordamida bu aniqlanadi.

Download 339.73 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7   8   9   ...   45




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling