🔥 أحدث الأخبار

موقع يهتم بكل ماهو جديد في عالم التكنولوجيا والرياضة

الحلقة الثامنة في تعلم C++: البرمجة الكائنية (OOP)

 


الحلقة الثامنة في تعلم C++: البرمجة الكائنية (OOP)

#برمجة

مقدمة

مرحباً بك في الحلقة الثامنة من سلسلة تعلم C++ للمبتدئين.

في الحلقات السابقة تعلمنا:

  • المتغيرات
  • الشروط
  • الحلقات
  • الدوال
  • المصفوفات
  • النصوص (Strings)
  • المؤشرات (Pointers)

واليوم ندخل إلى أهم مرحلة في C++ وهي:

البرمجة الكائنية (Object Oriented Programming - OOP)


ما هي البرمجة الكائنية؟

البرمجة الكائنية هي طريقة لتنظيم الكود تعتمد على فكرة:

تحويل الأشياء في الواقع إلى “كائنات” داخل البرنامج

مثلاً:

  • سيارة
  • طالب
  • حساب بنكي
  • منتج

كل شيء يمكن تحويله إلى كائن داخل البرنامج.


ما هو الكلاس (Class)؟

الكلاس هو “قالب” أو “تصميم” ننشئ منه الكائنات.

مثال:

class Car
{
};

ما هو الكائن (Object)؟

الكائن هو نسخة من الكلاس.

مثال:

Car myCar;

مثال بسيط جداً

#include <iostream>
using namespace std;

class Car
{
public:
    string name;
    int speed;
};

int main()
{
    Car c1;

    c1.name = "Toyota";
    c1.speed = 120;

    cout << c1.name << endl;
    cout << c1.speed;

    return 0;
}

شرح المثال

  • class Car = تصميم السيارة
  • c1 = كائن من السيارة
  • name و speed = خصائص

الخصائص (Attributes)

هي المتغيرات داخل الكلاس.

string name;
int speed;

مثال طالب

class Student
{
public:
    string name;
    int age;
};

إنشاء كائن طالب

#include <iostream>
using namespace std;

class Student
{
public:
    string name;
    int age;
};

int main()
{
    Student s1;

    s1.name = "Ali";
    s1.age = 20;

    cout << s1.name << endl;
    cout << s1.age;

    return 0;
}

الدوال داخل الكلاس (Methods)

يمكننا وضع دوال داخل الكلاس.

class Person
{
public:
    string name;

    void sayHello()
    {
        cout << "Hello " << name;
    }
};

مثال كامل

#include <iostream>
using namespace std;

class Person
{
public:
    string name;

    void sayHello()
    {
        cout << "Hello " << name;
    }
};

int main()
{
    Person p1;

    p1.name = "Ahmed";
    p1.sayHello();

    return 0;
}

المُنشئ (Constructor)

المُنشئ هو دالة تُنفذ تلقائياً عند إنشاء الكائن.

class Car
{
public:
    Car()
    {
        cout << "Car created";
    }
};

مثال كامل

#include <iostream>
using namespace std;

class Car
{
public:
    Car()
    {
        cout << "Object Created";
    }
};

int main()
{
    Car c1;

    return 0;
}

المُنشئ مع القيم

class Student
{
public:
    string name;
    int age;

    Student(string n, int a)
    {
        name = n;
        age = a;
    }
};

مثال استخدامه

#include <iostream>
using namespace std;

class Student
{
public:
    string name;
    int age;

    Student(string n, int a)
    {
        name = n;
        age = a;
    }
};

int main()
{
    Student s1("Ali", 20);

    cout << s1.name << endl;
    cout << s1.age;

    return 0;
}

التغليف (Encapsulation)

هو إخفاء البيانات وحمايتها.

class Bank
{
private:
    int balance;

public:
    void setBalance(int b)
    {
        balance = b;
    }

    int getBalance()
    {
        return balance;
    }
};

مثال كامل

#include <iostream>
using namespace std;

class Bank
{
private:
    int balance;

public:
    void setBalance(int b)
    {
        balance = b;
    }

    int getBalance()
    {
        return balance;
    }
};

int main()
{
    Bank account;

    account.setBalance(1000);

    cout << account.getBalance();

    return 0;
}

لماذا نستخدم private؟

لمنع التعديل المباشر على البيانات المهمة.


الوراثة (Inheritance)

تعني أن كلاس يرث خصائص كلاس آخر.

class Animal
{
public:
    void eat()
    {
        cout << "Eating";
    }
};

class Dog : public Animal
{
};

مثال كامل

#include <iostream>
using namespace std;

class Animal
{
public:
    void eat()
    {
        cout << "Eating";
    }
};

class Dog : public Animal
{
};

int main()
{
    Dog d1;

    d1.eat();

    return 0;
}

تعدد الأشكال (Polymorphism) - فكرة بسيطة

نفس الدالة تعمل بأكثر من شكل.

مثال بسيط:

class Math
{
public:
    int add(int a, int b)
    {
        return a + b;
    }

    int add(int a, int b, int c)
    {
        return a + b + c;
    }
};

مثال استخدامه

#include <iostream>
using namespace std;

class Math
{
public:
    int add(int a, int b)
    {
        return a + b;
    }

    int add(int a, int b, int c)
    {
        return a + b + c;
    }
};

int main()
{
    Math m;

    cout << m.add(5, 10) << endl;
    cout << m.add(5, 10, 15);

    return 0;
}

أهم مفاهيم OOP

  • Class (الكلاس)
  • Object (الكائن)
  • Constructor (المُنشئ)
  • Encapsulation (التغليف)
  • Inheritance (الوراثة)
  • Polymorphism (تعدد الأشكال)

أخطاء شائعة

❌ نسيان public
❌ محاولة الوصول إلى private مباشرة
❌ الخلط بين الكلاس والكائن
❌ عدم استخدام constructor بشكل صحيح


تمارين

  1. اصنع كلاس سيارة فيه اسم وسرعة
  2. اصنع كلاس طالب فيه اسم وعمر
  3. اصنع دالة داخل كلاس تطبع البيانات
  4. اصنع نظام بنك بسيط

ملخص الحلقة الثامنة

في هذه الحلقة تعلمنا:

  • ما هي البرمجة الكائنية
  • الكلاس والكائن
  • constructor
  • encapsulation
  • inheritance
  • polymorphism

في الحلقة التاسعة سنتعلم:

🔥 الملفات في C++ (File Handling)
كيف نحفظ البيانات داخل ملفات ونقرأها مثل البرامج الحقيقية ان شاءالله ..

تعليقات

💬 🙋🏻‍♂️