تک دیک

واژه نامه و مجله آموزشی کامپیوتر و فناوری

سازنده Constructor

سازنده یا Constructor چیست؟

سازنده (Constructor) در برنامه نویسی شئ گرا، به زیرروالی در یک کلاس گفته می شود که برای ایجاد یک شئ فراخوانی می‌شود. از این زیرروال برای آماده سازی اولیه‌ی شئ استفاده می‌شود.

معمولا در سازنده، متغیرهای عضو کلاس نیز مقداردهی می‌شوند. برای این منظور، مقادیر مورد نظر یا از طریق پارامتر دریافت می‌شود و یا مقادیر پیش فرضی به متغیرهای عضو اختصاص داده می‌شود. البته در اکثر زبان‌ها امکان سربارگذاری این زیرروال نیز وجود دارد. در اغلب زبان‌های برنامه نویسی، سازنده هم نام با کلاس است البته در برخی زبان‌ها از عناوین خاصی برای این زیرروال استفاده می‌شود. برای مثال، در ویژوال بیسیک، زیرروال سازنده با نام ثابت New تعریف می‌شود.

هم‌چنین در بسیاری از زبان‌ها، اگر برنامه نویس، یک زیرروال سازنده برای کلاس خود ایجاد نکند از سازنده‌ی پیش فرض (Default Constructor) به این منظور استفاده می‌شود که بسته به زبان برنامه نویسی مورد استفاده، معمولا متغیرهای عضو کلاس را به صفر (یا مقدار پیش فرضی دیگر) و یا Null مقداردهی می‌کند.

در مثال زیر نحوه‌ی ایجاد سازنده‌ها در زبان C++ را مشاهده می‌کنید. متغیرهای عضو xpos و ypox در تابع سازنده به مقادیر دریافتی از طریق پارامترهای a و b مقداردهی می‌شوند. تابع add نیز مقادیر این دو متغیر را با هم جمع می‌زند. در تابع main یک شئ به نام pointobj ساخته می‌شود و با توجه به اینکه سازنده‌ی کلاس دو پارامتر صحیح می‌گیرد مقادیر این دو پارامتر نیز هنگام ایجاد شئ تعیین شده است. سپس با استفاده از تابع add مقدار 3 (مجموع دو متغیر xpos و ypos) در خروجی نشان داده می‌شود.

#include <iostream>
using namespace std;

class MyPointClass{
    int xpos, ypos;
  public:
    MyPointClass(int,int);
    int add () {return (xpos + ypos);}
};

MyPointClass::MyPointClass(int a, int b) {
  xpos = a;
  ypos = b;
};

int main () {
 MyPointClass pointobj (1,2);
 cout << pointobj.add();
 return 0;
}

لازم به ذکر است در برخی زبان‌ها نیز زیرروالی به نام نابودکننده (Destructor) قابل تعریف است که هنگام نابود شدن شئ فراخوانی می‌شود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

امیرحسین شهسواری

عاشق دنیای رایانه و فناوری به خصوص برنامه نویسی هستم؛ یادگرفتن و البته یاد دادن چیزای جالبی که یاد گرفتم باعث خوشحالیم میشه و از اولویت‌های اصلی زندگیم به حساب میاد. از مدیریت و نوشتن در تک دیک هم واقعا لذت می‌برم :)

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

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