سازنده ها در c++11، قسمت دوم: ارث بری و مقدار دهی اعضا

هفته قبل در مورد محول کردن سازنده های c++11 نوشتم. اینجا میخوام دو تا ویژگی جدید در رابطه با سازنده های c++11 رو معرفی کنم:

  1. به ارث بری سازنده ها: واقعا کفر آدم رو در می آورد. بعد اینکه کلاس فرزند رو به ارث می بری باید بشینی دوباره از اول سازنده هاش رو بازنویسی کنی. خوب این قضیه رو c++11 حل کرده. سینتکسش هم این شکلیه:
    [cpp]
    class BaseClass {
    public:
    BaseClass(int value);
    };

    class DerivedClass : public BaseClass {
    public:
    using BaseClass::BaseClass;
    };
    [/cpp]
    چند تا نکته اما هست که باید دقت بشه:

    • این ویژگی تمام سازنده های کلاس پایه رو با هم به ارث میبره. یعنی نمیشه از بین سازنده ها انتخاب کرد.
    • کلاس فرزند دیگه نمیتونه سازنده ای داشته باشه که امضاش با کلاس مادر یکیه. به نظر من البته این نکته خیلی محدود کنندست.
    • اگه کلاسی همزمان دو تا والد داره، نمیتونه سازنده های جفتشون رو به ارث ببره.
  2. مقدار دهی اولیه به اعضای کلاس
    [cpp]
    class SomeClass {
    int value = 5;
    };
    [/cpp]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *