تفاوت مقدار دهی متغیرهای عضو در سازنده کلاس - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تفاوت مقدار دهی متغیرهای عضو در سازنده کلاس

0 امتیاز

سلام.

به کد زیر دقت کنید:

class X {
    int a, bj;
public:
    const int& r;
    X(int i)
      : r(a) 
      , b{i} 
    { }
};

تفاوت مقداردهی r و b در چیه؟

سوال شده مرداد 30, 1399  بوسیله ی .bahman (امتیاز 137)   3 18 24

1 پاسخ

0 امتیاز

سلام؛ متغیر `r` به روش Direct initialization مقداردهی شده:

https://en.cppreference.com/w/cpp/language/direct_initialization

و متغیر `b` به‌روش List initilization مقداردهی شده:

https://en.cppreference.com/w/cpp/language/list_initialization

 

روش دوّم برای built-in typeها خیلی خوبه چون جلوی تبدیل ضمنی رو می‌گیره و همینطور می‌تونید داده‌های یک ساختاری که Constructor پیش‌فرض دارند هم مقدادهی کنید.

پاسخ داده شده مرداد 30, 1399 بوسیله ی mg_ramezani (امتیاز 727)   1 1 12
...