الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استخدام dynamic_cast

بدأه linuxbybelkacem في 31 مارس 2011 · 3 رد · 598 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

dynamic_cast هي كلمة مفتاحية لسي ++ وبحت في جوجل فوجدت انها تستخدم للتحويل من صنف أساسي الى صنف مشتق

ولكن مالفائدة من ذلك ؟؟؟؟؟؟؟؟

ممكن مثال حول هذه الكلمة المفتاحية والفائدة منها وشكرا جزيلا لكم

#2
#include <iostream>
#include <cstdio>

using namespace std;


struct animal
{
    string name ;
};

struct dog : public animal
{

};

struct calculator
{

};

int main()
{

    dog aidi; // aidi is a dog breed ( moroccan Atlas Mountain Dog)
    animal lion;
    dog* lolo = dynamic_cast<dog*>(&aidi); // OK lolo and aidi are dogs
    animal* kiki = dynamic_cast<dog*>(lolo);// OK a dog is an animal so kiki is an animal
    dog* monster =dynamic_cast<dog*>(&lion);// Error : a lion is not a dog !
    calculator* casio =dynamic_cast<calculator*>(&aidi);// error we cant transform a dog to a calculator !!!

    return 0;
}
#3

ارجو التوضيح اكثر لم نفهم من الكود

49940.jpg
#4

هى تستخدم للتحويل بين كائنات او متغيرات من نفس النوع ولكن وقت التشغيل runtime

بعكس static_cast والتى تستخدم لنفس الغرض ولكن فى وقت الترجمة compile time

ولهذا افضل الثانية لان المترجم سيظهر لك المشاكل التى يسببها التحويل ان وجدت

لكن الثانية تتسبب فى مشاكل وقت التشغيل فبالتالى من الصعب تتبعها واكتشافها

بالتوفيق


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

مواضيع مشابهة