Sobes.tech
Junior — Middle

C++-də dynamic_cast operatorunun istifadə olunması tövsiyə olunan hallar hansılardır?

sobes.tech Süni İntellekt

AI-dan cavab

C++ dilində dynamic_cast operatoru irsiyyət hiyerarşisində göstəricilər və ya istinadlar üzərində təhlükəsiz çevirmələr üçün istifadə olunur, burada obyektin həqiqətən hədəf növünə və ya onun alt sinfinə aid olub-olmadığını yoxlamaq lazımdır.

dynamic_cast aşağıdakı hallarda tövsiyə olunur:

  • Siniflər hiyerarşisində aşağıya çevirmə (downcasting) zamanı, əsas sinfə aid göstərici və ya istinad varsa və törəmə sinfə daxil olmaq istəyirsinizsə.
  • Obyektin növünü işləmə zamanı yoxlamaq (RTTI).
  • Təhlükəsiz çevirmələr üçün, çünki uğursuz olarsa, dynamic_cast göstəricilər üçün nullptr qaytarır və ya istinadlar üçün istisna atır.

Nümunə:

class Base { virtual void foo() {} };
class Derived : public Base {};

Base* b = new Derived();
Derived* d = dynamic_cast<Derived*>(b);
if (d) {
    // Çevirmə uğurludur
} else {
    // Çevirmə uğursuz oldu
}