Learning ©➕➕
4.52K subscribers
81 photos
2 videos
38 files
182 links
ک
Download Telegram
#69
#decltype
#auto
🔺توابع decltype و auto از c++11 به بعد مورد استفاده قرار میگیرن

🔹از decltype زمانی استفاده میشود که نوع خروجی یه حاصل را نمیدونیم چیه مثلا :

int x;

float y;

cin >> x >> y;

int sum = ( x + y );

cout << sum;


چون sum از نوع int هست پس جواب int میشه در صورتی که باید جواب اعشاری بهمون میداد ... برای اینکه جواب درست بهمون بده میایم از decltype استفاده میکنیم تا خودش اتوماتیک نوع خروجی رو تشخیص بده یعنی باید بنویسیم

int x;

float y;

cin >> x >> y;

decltype ( x + y ) sum = ( x + y );

cout << sum;


الان خروجی sum اعشاری هست

🔹از تابع decltype و auto تابع زمانی استفاده میشن که نوع خروجی رو از قبل نمیدونیم چیه مثلا :

int calc(int x,float y)

{

  return (x + y);

}


در اینجا return باید مقدار float رو به خروجی بده ولی ما int رو چون از قبل به عنوان خروجی دادیم int قرار میگیره پس برای حل این مشکل میایم از auto و decltype درون template ها استفاده میکنیم :

template <class T1,class T2>

auto calc(T1 x,T2 y) -> decltype(x + y)

{

  decltype(x + y) sum = 0;

  for (int i = 0; i < 10; i++)

  {

      sum += x + y;

  }

return sum;

}


int main()

{

 cout << calc(2,3.3);

 cin.get();

 return 0;

}


@Learncpp
✍ 📖 : از اعضای محترم خواهشمندیم برای بالا بردن سطح کیفی گروه در حین تمرین و کدنویسی زبان ++C اگر به یک تابع جدیدی برخورد کردن اسم تابع مورد نظر رو به صورت کلمه کلیدی که با # شروع میشه همراه با اسم کتابخونش و کدی که در حال تمرین هستند و کمی توضیح فارسی تو گروه بذارن تا دوستانی که کاربرد تابع مورد نظر رو نمیدونن بعدا با جستجو تو گروه تابع مورد نظر رو پیدا کرده و کاربردشو یاد بگیرن🌹
مثلا هنگام یادگیری با تابعی مثله decltype بر میخورین که میتونین کدی رو که برای یادگیری دارین استفاده میکنین به صورتی که گفته شد توی گروه بذارین ( توی کانال هم قرار میگیره ) تا بقیه با زدن #decltype براحتی به توضیحاتی که دادین دسترسی پیدا کنن 🙏