الفئات Classes
ما هو الـclass ؟
في لغة C++، الـclass هو نوع بيانات محدد من قبل المستخدم يقوم بتغليف البيانات والدوال التي تعمل على تلك البيانات. إنه بمثابة مخطط لإنشاء الـobjects، وهي خصائص للـclass. تخيل الـclass كقالب يحدد بنية الـobjects وسلوكها.
للإعلان عن class في C++، يمكنك استخدام الكلمة المفتاحية class.
بمجرد تعريف class، يمكنك إنشاء objects منه. الـobjects تمثل خصائص الـclass، ولكل منها مجموعة البيانات الخاصة بها.
في لغة C++، تدعم الـclasses الصفات التعريفية للوصول مثل public, private, وprotected. تتحكم هذه الصفات في إمكانية رؤية الـclass members وإمكانية الوصول إليهم.
مثال 1:
#include <iostream> #include <cstring> #include <algorithm> using namespace std; class car{ private: char name[15]; char color[10]; int maxSpeed; int model; public: void setName(char n[]) { strcpy_s(name, n); } void setColor(char n[]) { strcpy_s(color, n); } void setMaxSpeed(int m) { maxSpeed = m; } void setModel(int m) { model = m; } char* getName() { return name; } char* getColor() { return color; } int getMaxSpeed() { return maxSpeed; } int getModel() { return model; } void print() { cout << "name = " << name << "\n" << "color = " << color << "\n" << "maxspeed = " << maxSpeed << "\n" << "model = " << model << "\n"; } }; int main() { car x; x.setName("kia"); x.setColor("red"); x.setMaxSpeed(300); x.setModel(2017); x.print(); return 0; }
يحدد كود C++ هذا class بسيط يسمى سيارة يمثل معلومات حول السيارة، مثل اسمها ولونها وسرعتها القصوى وطرازها. يقوم البرنامج بإنشاء خصائص لهذا الـclass، ويحدد سماته، ويطبع التفاصيل باستخدام دوال الأعضاء. دعونا نحلل الكود خطوة بخطوة:
- تعريف الـclass المسمى بـcar
class car { private: char name[15]; char color[10]; int maxSpeed; int model; public: // Member functions for setting attributes void setName(char n[]) { strcpy_s(name, n); } void setColor(char n[]) { strcpy_s(color, n); } void setMaxSpeed(int m) { maxSpeed = m; } void setModel(int m) { model = m; } // Member functions for retrieving attributes char* getName() { return name; } char* getColor() { return color; } int getMaxSpeed() { return maxSpeed; } int getModel() { return model; } // Member function to print details void print() { cout << "name = " << name << "\n" << "color = " << color << "\n" << "maxspeed = " << maxSpeed << "\n" << "model = " << model << "\n"; } };
- Private Members: يحتوي الـclass على متغيرات الـprivate member (الاسم واللون والحد الأقصى للسرعة والطراز)، والتي لا يمكن الوصول إليها إلا داخل الـclass.
- Public Members: يوفر الـclass دوال الـpublic member (setName، وsetColor، وsetMaxSpeed، وما إلى ذلك) لتعيين واسترجاع قيم هذه المتغيرات الخاصة.
- الدالة الرئيسة main:
int main() { car x; // Setting attributes of the car x.setName("kia"); x.setColor("red"); x.setMaxSpeed(300); x.setModel(2017); // Printing the details using the print() member function x.print(); return 0; }
– إنشاء الكائن object: يتم إنشاء كائن x من نوع car.
- سمات الإعداد: يتم تعيين سمات السيارة (الاسم واللون والسرعة القصوى والطراز) باستخدام وظائف الأعضاء (setName وsetColor وsetMaxSpeed وsetModel).
– تفاصيل الطباعة: تتم طباعة تفاصيل السيارة باستخدام دالة عضو الطباعة التي تعرض قيم سمات السيارة.
مخرجات هذا البرنامج ستكون كالتالي:
name = kia color = red maxspeed = 300 model = 2017
يوضح هذا الاستخدام البسيط لـclass في لغة C++، والتي تتضمن البيانات والسلوك المتعلق بالسيارة. يوفر الـclass طرقًا لتعيين واسترجاع السمات، وتعزيز التغليف وإخفاء البيانات. هذا مفهوم أساسي في البرمجة كائنية التوجه.
مثال 2:
#include <iostream> using namespace std; class triangle{ private: float base; float height; public: void setBase_height(float b, float h) { base = b; height = h; } float area() { return 0.5 * base * height; } void print() { cout << "base = " << base << endl << "height = " << height << endl << "area = " << area() << endl; } }; int main() { triangle ob; ob.setBase_height(5, 10); ob.print(); return 0; }
يحدد هذا الرمز class يسمى triangle الذي يمثل مثلثًا. يحتوي الـclass على متغيرات أعضاء خاصة لقاعدة المثلث وارتفاعه، ويوفر دوال الأعضاء لإعداد هذه القيم وحساب المساحة وطباعة تفاصيل المثلث. دعونا نحلل الكود خطوة بخطوة:
- تعريف الـclass المسمى بـtriangle:
class triangle { private: float base; float height; public: // Member function to set base and height void setBase_height(float b, float h) { base = b; height = h; } // Member function to calculate the area of the triangle float area() { return 0.5 * base * height; } // Member function to print details of the triangle void print() { cout << "base = " << base << endl << "height = " << height << endl << "area = " << area() << endl; } };
- Private Members: يحتوي الـclass على متغيرات الـprivate member (القاعدة والإرتفاع)، والتي لا يمكن الوصول إليها إلا داخل الـclass.
- Public Members: يوفر الـclass دوال public member (setBase_height, area, وprint) لتعيين القاعدة والارتفاع، وحساب المساحة، وطباعة تفاصيل المثلث.
- الدالة الرئيسة main:
int main() { triangle ob; // Setting base and height of the triangle ob.setBase_height(5, 10); // Printing the details of the triangle ob.print(); return 0; }
- إنشاء الكائن Object : يتم إنشاء كائن ob من النوع triangle.
- ضبط القاعدة والارتفاع: يتم استدعاء دالة العضو setBase_height لتعيين القاعدة على 5 والارتفاع على 10 للمثلث.
- تفاصيل الطباعة: يتم استدعاء دالة عضو الطباعة لطباعة تفاصيل المثلث بما في ذلك القاعدة والارتفاع والمساحة المحسوبة.
مخرجات هذا البرنامج ستكون كالتالي:
base = 5 height = 10 area = 25
يوضح هذا الاستخدام الأساسي لـclass في لغة C++ لتمثيل البيانات المتعلقة بالمثلث ومعالجتها. يقوم الـclass بتغليف البيانات والسلوك المتعلق بالمثلث، مما يعزز التغليف ويجعل الكود أكثر تنظيماً وقابلية لإعادة الاستخدام. يقوم البرنامج بحساب وعرض مساحة المثلث باستخدام دوال الأعضاء المتوفرة.