ویرگول
ورودثبت نام
سید عمید قائم مقامی
سید عمید قائم مقامیبرنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
سید عمید قائم مقامی
سید عمید قائم مقامی
خواندن ۳ دقیقه·۲ ماه پیش

آموزش برنامه نویسی قسمت 14 (سازنده و مخرب و Class در زبان C++):

کلاس‌ (Class)، سازنده و مخرب در C++

در زبان C++، کلاس یکی از مهم‌ترین مفاهیم برنامه‌نویسی شی‌ءگرا (OOP) است. کلاس در واقع یک الگو (Template) برای ساخت اشیاء است؛ یعنی مشخص می‌کند که یک شیء چه ویژگی‌ها (Properties / Data Members) و چه رفتارهایی (Methods / Member Functions) دارد.

1. کلاس (Class) چیست؟

کلاس مجموعه‌ای از متغیرها و توابع است که در قالب یک واحد منطقی کنار هم قرار گرفته‌اند. با استفاده از کلاس، می‌توان از دنیای واقعی مدل‌سازی کرد؛ مثلاً یک کلاس «ماشین» می‌تواند ویژگی‌هایی مثل رنگ و سرعت و رفتارهایی مثل حرکت را در خود نگه دارد.

مثال ساده از یک کلاس:

class Car { public: string color; int speed; void drive() { cout << "Car is driving..." << endl; } };

در اینجا Car یک کلاس است که دو عضو داده (color و speed) و یک تابع عضو (drive) دارد.

2. سازنده (Constructor)

سازنده تابعی است که هنگام ساخت یک شیء از کلاس، به صورت خودکار اجرا می‌شود.

ویژگی‌های سازنده:

همنام با کلاس است.

نوع بازگشتی ندارد (حتی void هم نمی‌نویسیم).

هنگام ایجاد شیء به طور خودکار اجرا می‌شود.

معمولاً برای مقداردهی اولیه استفاده می‌شود.

مثال سازنده:

class Car { public: string color; int speed; // سازنده Car(string c, int s) { color = c; speed = s; } };

نحوهٔ ساخت شیء:

Car myCar("Red", 120);

به محض ایجاد myCar سازنده اجرا می‌شود و مقداردهی انجام می‌گیرد.

سازنده پیش‌فرض (Default Constructor)

اگر سازنده‌ای بدون پارامتر تعریف کنیم یا برنامه‌نویس اصلاً سازنده ننویسد، سازنده پیش‌فرض وجود دارد.

Car() { color = "Black"; speed = 0; }

3. مخرب (Destructor)

مخرب تابعی است که هنگام نابودی یک شیء اجرا می‌شود.

ویژگی‌های مخرب:

نام آن مانند کلاس است اما قبل از آن یک ~ می‌آید.

فقط یک مخرب می‌تواند وجود داشته باشد.

نوع بازگشتی ندارد.

خودکار اجرا می‌شود وقتی شیء از بین می‌رود (مثلاً خروج از بلوک یا delete).

کاربرد مخرب:

آزادسازی حافظهٔ heap

بستن فایل‌ها

قطع ارتباطات شبکه‌ای

انجام cleanup

مثال مخرب:

class Car { public: Car() { cout << "Constructor called!" << endl; } ~Car() { cout << "Destructor called!" << endl; } };

اگر این کلاس را اینگونه استفاده کنیم:

int main() { Car c; }

خروجی:

Constructor called! Destructor called!

مثال جامع:

#include <iostream> using namespace std; class Car { public: string color; int speed; // سازنده Car(string c, int s) { color = c; speed = s; cout << "Constructor called: " << color << ", " << speed << " km/h" << endl; } // مخرب ~Car() { cout << "Destructor called for " << color << endl; } void drive() { cout << "Car is driving at " << speed << " km/h" << endl; } }; int main() { cout << "Creating car1..." << endl; Car car1("Red", 120); car1.drive(); cout << "\nCreating car2..." << endl; Car car2("Blue", 90); car2.drive(); cout << "\nEnd of main function." << endl; return 0; }

خروجی

Creating car1... Constructor called: Red, 120 km/h Car is driving at 120 km/h Creating car2... Constructor called: Blue, 90 km/h Car is driving at 90 km/h End of main function. Destructor called for Blue Destructor called for Red

توضیح :

  • وقتی car1 و car2 ساخته می‌شوند، سازنده فراخوانی می‌شود.

  • وقتی برنامه به پایان می‌رسد و اشیاء از بین می‌روند، مخرب‌ها به ترتیب معکوس ایجاد اجرا می‌شوند.

Telegram: @CaKeegan
Gmail : amidgm2020@gmail.com

classسازندهسی پلاس پلاسبرنامه نویسی
۰
۰
سید عمید قائم مقامی
سید عمید قائم مقامی
برنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
شاید از این پست‌ها خوشتان بیاید