در این جلسه تیم کدگیت را با آموزش Constructor در سی پلاس پلاس همراهی کنید. در ابتدا Constructor را توضیح میدهیم و در ادامه با معرفی انواع Constructor به پیاده سازی مثالهایی در این زمینه خواهیم پرداخت. پیشنهاد میشود آموزشهای ابتدایی سی پلاس پلاس را قبل از ادامه این آموزش، مطالعه کنید.
شی گرایی
همه چیز در مورد اشیا است. همانطور که اشیا در دنیای واقعی رفتار میکنند، در دنیای نرم افزار نیز همانگونه اند. اشیا در یک برنامه تقریبا همه کار را انجام میدهند. به عنوان مثال ماشین ها شتاب میگیرند یا انسان ها راه میروند(انسان نیز یک شی است) یا هواپیماها پرواز میکنند و ماهی ها شنا میکنند. به طور مشابه ما در نرم افزار نیز ما اشیایی میسازیم که رفتاری خاص را انجام میدهند. و ما از آن برنامه انتظار داریم که رفتارهای اشیا را انجام دهند(راه رفتن، پرواز کردن …). پس موقعی که نرم افزار ما اجرا میشود اشیا ما به وجود می آیند.
Constructor در سی پلاس پلاس
در آموزشهای گذشته در مورد شی گرایی صحبت شد. در آن آموزش کلاسها را معرفی کرده و مفهوم شی را توضیح دادیم. در آن آموزش تابعی را توضیح ندادیم ولی از آن در برنامه خود استفاده کردیم. آن تابع، Constructor بود. وقتی یک شی را در سی پلاس پلاس ایجاد میکنیم تابع Constructor نیز صدا زده میشود و شی ما را ایجاد میکند (اصطلاحا شی ما را میسازد). اما تفاوت Constructor با توابع عادی چه تفاوتی دارند؟ پاسخ این سوال به صورت زیر میباشد:
- Constructor چیزی return نمیکند.
- نام تابع (Constructor) همنام کلاس است.
- تابع Constructor هنگام ایجاد شی، صدا زده میشود.
Constructor در سی پلاس پلاس به سه دسته تقسیم میشوند:
- Default constructor: اگر ما در کلاس خود از constructor بدون ورودی استفاده کنیم آن را Default Constructor میگویند.
- Parameterized constructor: وقتی متد constructor یک یا چندین ورودی داشته باشد.
- 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 را چاپ کردیم.
Download “دانلود سورس Constructor در سی پلاس پلاس”
Constructor-in-cpp-www.codegate.ir_.rar – 295 بار دانلود شده است – 707,00 بایت
پسورد: www.codegate.ir