C++ OOP

در C++ «برنامه‌نویسی شیءگرا» (Object-Oriented Programming یا OOP) یک سبک طراحی و کدنویسی است که به شما امکان می‌دهد کد را بر اساس اشیا (Objects) و کلاس‌ها (Classes) سازماندهی کنید.

🟠 C++ OOP (Object-Oriented Programming)

🔹 مفاهیم کلیدی

مفهومتوضیح کوتاه
Classالگوی ساخت یک شیء؛ شامل متغیرها (ویژگی‌ها) و توابع (رفتار) است.
Objectنمونه (Instance) واقعی ساخته شده از یک کلاس.
Encapsulationمخفی‌سازی جزئیات پیاده‌سازی و دسترسی کنترل‌شده به داده‌ها.
Inheritanceارث‌بری کلاس فرزند از کلاس والد برای استفاده و گسترش ویژگی‌ها.
Polymorphismامکان داشتن چند شکل مختلف از یک تابع یا رفتار (Overloading/Overriding).
Abstractionپنهان‌سازی پیچیدگی و نمایش رابط ساده به کاربر.

🔹 ساختار یک کلاس ساده

#include <iostream> using namespace std; class Car { public: // سطح دسترسی string brand; int year; void honk() { // متد (member function) cout << "Beep!\n"; } }; int main() { Car myCar; // ساخت یک شیء myCar.brand = "Toyota"; myCar.year = 2024; myCar.honk(); cout << myCar.brand << " - " << myCar.year; return 0; }

🔹 ویژگی‌های مهم OOP در C++

1️⃣ Encapsulation (کپسوله‌سازی)

  • استفاده از private و public برای کنترل دسترسی.

  • داده‌های حساس را private تعریف می‌کنیم و با متدهای getter/setter به آنها دسترسی می‌دهیم.

2️⃣ Inheritance (ارث‌بری)

class Vehicle { public: void move() { cout << "Moving\n"; } }; class Car : public Vehicle { public: void honk() { cout << "Beep\n"; } };

Car متد ()move را از Vehicle به ارث می‌برد.

3️⃣ Polymorphism (چندریختی)

  • Compile-time: تابع‌های همنام ولی پارامتر متفاوت (Overloading).

  • Run-time: متدهای مجازی (Virtual) که در کلاس فرزند بازنویسی می‌شوند.

class Animal { public: virtual void sound() { cout << "Animal sound\n"; } }; class Dog : public Animal { public: void sound() override { cout << "Woof\n"; } };

4️⃣ Abstraction (انتزاع)

  • کلاس‌های Abstract با متدهای pure virtual.

class Shape { public: virtual double area() = 0; // pure virtual };

🔹 نکات مهم

  • کلاس‌ها می‌توانند سازنده (constructor) و تخریب‌کننده (destructor) داشته باشند.

  • می‌توانید از static members و friend functions استفاده کنید.

  • اصول OOP به افزایش قابلیت نگهداری، قابلیت استفادهٔ مجدد و سازماندهی بهتر کد کمک می‌کند.

✅ خلاصه

  • OOP در C++ شامل: کلاس، شیء، کپسوله‌سازی، ارث‌بری، چندریختی، انتزاع.

  • برای ساخت برنامه‌های بزرگ و قابل گسترش، ساختار شیءگرا ضروری است.

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