Regular cast vs static_cast vs dynamic_cast - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۳۶۸ نفر آنلاین
۱۸۶ عضو و ۱۸۲ مهمان در سایت حاضرند

Regular cast vs static_cast vs dynamic_cast

+4 امتیاز

سلام

فرق این 3 تا تبدیل با هم چیه ؟

 

Test *t = (Test *)ptr;
Test *t = static_cast<Test *>(ptr);
Test *t = dynamic_cast<Test *>(ptr);

 

سوال شده آذر 2, 1392  بوسیله ی Xavi (امتیاز 627)   24 83 110
دوباره تگ گذاری شد اردیبهشت 6, 1393 بوسیله ی BlueBlade

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

Regular Cast : ترکیب شده ی همه ی Cast ها هست . چون در C شی گرایی نیست از این Cast بکارگیری میشه .

Dynamic Cast : تنها برای تبدیل رسته های ( Class ) های Derived و Base به هم دیگه بکارمیره . که به برنامه نویس اطمینان Cast شدن این دو به هم رو نشون میده . چون در بیشتر موارد نمیشه که کلاس Base v رو به Derived کست کرد.

Static Cast : برای تبدیل نوع های داده ای به هم دیگه بکار میره .

Const Cast : برای از بین Constness یا ایستا بودن یک متغییر بکار میره .

دلیل اینکه اینها از هم جدا شدن اینه که برنامه نویس رو آزاد میزاره که بتونه تنها از Cast ی که میخواد رو چیز دلخواهش اون رو بکار ببره و بتونه Cast کردن رو بیشتر زیر دست خودش داشته باشه .

پاسخ داده شده آذر 4, 1392 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
انتخاب شد دی 21, 1392 بوسیله ی BlueBlade
...