سازنده ها در c++11، قسمت اول: محول کردن سازنده ها

اولا بگم که ترجمه کردن constructor delegating کار سختیه :ی
خوب! اصل قضیه اینه که معمولا بخش زیادی از کد سازنده های مختلف کلاسها شبیه هم هستند. این مشکل رو تو ‪C#‬ اینطور حل می کنم که یه متد مخفی مث init میسازم و بخشهای مشترک رو تو اونجا انجام می دم. اما c++03 این اجازه رو نمی داد. اما حالا c++11 این مشکل رو به زیبایی حل میکنه: سازنده های مختلف یک کلاس میتونن همدیگه رو صدا بزنن. به این ترتیب میشه یه سازنده اصلی داشت که سازنده های دیگه همشون اون رو صدا میزنن. اینجوری کد منظم تر و شکیل تر میشه.
اینم مثالش از ویکی پدیا:
[cpp]
class SomeType {
int number;

public:
SomeType(int new_number) : number(new_number) {}
SomeType() : SomeType(42) {}
};
[/cpp]

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

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