الحلقة الثامنة في تعلم 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 بشكل صحيح
تمارين
- اصنع كلاس سيارة فيه اسم وسرعة
- اصنع كلاس طالب فيه اسم وعمر
- اصنع دالة داخل كلاس تطبع البيانات
- اصنع نظام بنك بسيط
ملخص الحلقة الثامنة
في هذه الحلقة تعلمنا:
- ما هي البرمجة الكائنية
- الكلاس والكائن
- constructor
- encapsulation
- inheritance
- polymorphism
في الحلقة التاسعة سنتعلم:
🔥 الملفات في C++ (File Handling)
كيف نحفظ البيانات داخل ملفات ونقرأها مثل البرامج الحقيقية ان شاءالله ..

تعليقات
إرسال تعليق