Object Oriented in Cpp, آموزش ++c, زبان c++, َشی گرایی در سی پلاس پلاس

Constructor در سی پلاس پلاس (Constructor in Cpp)

Constructor در سی پلاس پلاس

در این جلسه تیم کدگیت را با آموزش Constructor در سی پلاس پلاس همراهی کنید. در ابتدا Constructor را توضیح می‌دهیم و در ادامه با معرفی انواع Constructor به پیاده سازی مثال‌هایی در این زمینه خواهیم پرداخت. پیشنهاد می‌شود آموزش‌های ابتدایی سی پلاس پلاس را قبل از ادامه این آموزش، مطالعه کنید.

شی گرایی

همه چیز در مورد اشیا است. همانطور که اشیا در دنیای واقعی رفتار میکنند، در دنیای نرم افزار نیز همانگونه اند. اشیا در یک برنامه تقریبا همه کار را انجام میدهند. به عنوان مثال ماشین ها شتاب میگیرند یا انسان ها راه میروند(انسان نیز یک شی است) یا هواپیماها پرواز میکنند و ماهی ها شنا میکنند. به طور مشابه ما در نرم افزار نیز ما اشیایی میسازیم که رفتاری خاص را انجام میدهند. و ما از آن برنامه انتظار داریم که رفتارهای اشیا را انجام دهند(راه رفتن، پرواز کردن …). پس موقعی که  نرم افزار ما اجرا میشود اشیا ما به وجود می آیند.

Constructor در سی پلاس پلاس

در آموزش‌های گذشته در مورد شی گرایی صحبت شد. در آن آموزش کلاس‌ها را معرفی کرده و مفهوم شی را توضیح دادیم. در آن آموزش تابعی را توضیح ندادیم ولی از آن در برنامه خود استفاده کردیم. آن تابع، Constructor بود. وقتی یک شی را در سی پلاس پلاس ایجاد میکنیم تابع Constructor نیز صدا زده می‌شود و شی ما را ایجاد می‌کند (اصطلاحا شی ما را می‌سازد). اما تفاوت Constructor با توابع عادی چه تفاوتی دارند؟ پاسخ این سوال به صورت زیر می‌باشد:

  1. Constructor چیزی return نمیکند.
  2. نام تابع (Constructor) همنام کلاس است.
  3. تابع Constructor هنگام ایجاد شی، صدا زده می‌شود.

Constructor در سی پلاس پلاس به سه دسته تقسیم می‌شوند:

  1. Default constructor: اگر ما در کلاس خود از constructor بدون ورودی استفاده کنیم آن را Default Constructor می‌گویند.
  2. Parameterized constructor: وقتی متد constructor یک یا چندین ورودی داشته باشد.
  3. Copy Constructor: این نوع تابع در آموزش جداگانه‌ای توضیح خواهیم داد.

مثال Default constructor

قبل از توضیحات این قسمت، کد مثال Default Constructor را ببینید:

class construct {
public:
    int a, b;

    // Default Constructor
    construct() {
        cout<< "Constructor"<<endl;
        a = 10;
        b = 20;
    }
};

int main() {
    // Default constructor called automatically
    // when the object is created
    construct c;
    cout << "a: " << c.a << endl << "b: " << c.b;
    return 1;
}

همانطور که میبینید در کد بالا یک کلاس به نام Construct ساخته و در آن یک Constructor نوشتیم. در این تابع دو متغیر a و b را مقدار دهی کردیم. در تابع main نیز یک شی از کلاس Construct ایجاد کردیم. نکته‌ای که باید توجه کنید قبل از اینکه متغیر a و b در خروجی چاپ شود متن Constructor چاپ می‌شود و این نشان دهنده آن است که تابع Constructor هنگام رسیدن به کد Construct c; اجرا می‌شود. این دقیقا تعریفی است که در بالا آورده شد یعنی “وقتی یک شی را در سی پلاس پلاس ایجاد میکنیم تابع Constructor نیز صدا زده می‌شود و شی ما را ایجاد می‌کند”.

مثال Parameterized constructor

قبل از توضیحات این قسمت، کد مثال Parameterized constructor را ببینید:

class Point {
private:
    int x, y;
public:
    // Parameterized Constructor
    Point(int x1, int y1) {
        x = x1;
        y = y1;
    }

    int getX() {
        return x;
    }
    int getY() {
        return y;
    }
};
int main() {

    // Constructor called
    Point p1(10, 15);

    // Access values assigned by constructor
    cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY();

    return 1;
}

در کد بالا کلاسی به نام Point را نوشته‌ایم. در این کلاس از یک Constructor استفاده کرده که دو ورودی x و y را می‌گیرد. در تابع main وقتی می‌خواهیم شی این کلاس را بسازیم پارامترهای Constructor را باید به آن بدهیم. در آخر متغیر x و y را چاپ کردیم.

نوشته های مشابه

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

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