موسسه خیریه محک

شهر ریاضی بازی-ریاضی

چه وقتی یک تبدیل در برنامه اتفاق می‌افته؟

0 امتیاز
357 نمایش

در یه برنامه‌ی C++ چه وقتایی لازمه که یه تبدیل انجام بشه و اگه نشه اون تبدیل رو انجام داد چه اتفاقی برای برنامه می‌افته؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده سه شنبه ۱۴ خرداد ۱۳۹۲ در C++ توسط prodo  
بازتگ شده سه شنبه ۱۸ تیر ۱۳۹۲

1 پاسخ

0 امتیاز

در حالت کلی یا تبدیل در زمان کامپایل انجام می‌شه یا زمان اجرا. در C++ تبدیل در زمان کامپایل به اون معنی که در php و javascript داریم موجود نیست پس فقط تبدیل در زمان کامپایل رو در نظر می‌گیریم.

دو نوع تبدیل در زمان کامپایل امکان انجام شدن داره. تبدیل صریح که توسط دستور نوشته شده مثل static_cast یا int(5.5) یا مثل اون انجام می‌شه و تبدیل ضمنی که در حالت‌های زیر اتفاق می‌افته

  1. یک عبارت موقع فراخوانی یک تابع به کار رفته باشه که نتیجه‌ش به طور طبیعی از نوع T2 هست در صورتی که آرگومان تابع از نوع T1 اعلان شده باشه
  2. یک عبارت در یک عملگر به کار رفته باشه که نتیجه‌ش به طور طبیعی از نوع T2 هست در صورتی که عملوند مورد استفاده از نوع T1 اعلان شده باشه.
  3. برگرداندن یک شی از نوع T2 از تابع یا مقداردهی اولیه.

  4. استفاده از شی از نوع T2 در عبارت یک دستور switch.

  5. استفاده از شی از نوع T2 در عبارت یک دستور شرطی if یا حلقه.

در صورتی که تبدیل نتونه انجام بشه برنامه کامپایل نخواهد شد.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده سه شنبه ۱۴ خرداد ۱۳۹۲ توسط prodo