اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

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

تبدیل‌های ضمنی در C++ کدام‌ها هستند؟

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

تبدیل‌های ضمنی در C++ فکر نمی‌کنم چند تا بیشتر باشه. حداکثر اینه که تعداد کمی قانون برای تعیین تبدیل کردن یا نکردن داره. این قوانین یا حالت‌ها کدوم‌ها هستن؟

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

1 پاسخ

0 امتیاز

۱) تبدیل ضمنی در حالت‌های زیر اتفاق می‌افته

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

برای این که خروجی عبارتی که یک شی از نوع T2 تولید کرده به شی از نوع T1 تبدیل بشه شاید نشه با یه گام این تبدیل رو انجام داد. بلکه شاید لازم باشه چند گام اتفاق بیافته. مثلاً T2 به T3 و سپس T3 به T1 تبدیل بشه. به این تبدیلات پشت سر هم دنباله‌ی تبدیلات می‌گن.

سه نوع دنباله تبدیل کلی وجود داره که به ترتیب توصط کامپایلر مورد بررسی قرار می‌گیرن

  1. دنباله تبدیلات استاندارد
  2. دنباله تبدیلات تعریف شده توسط کاربر
  3. دنباله تبدیلات حذفی (ellipsis)

توضیح همه‌ی این‌ها یه مقاله‌ی کامل می‌شه. با این ترتیبی که گفته شد می‌تونیم بقیه‌شو با جستجو در منابع پیدا کنیم.

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