Esraa . نشر 17 فبراير أرسل تقرير نشر 17 فبراير (معدل) إنشاء كلاس بإستخدام الAbstract بلغة c++ تم التعديل في 17 فبراير بواسطة Esraa Bennour تعديل عنوان السؤال 2 اقتباس
0 Mustafa Suleiman نشر 17 فبراير أرسل تقرير نشر 17 فبراير لم يتم توضيح اللغة، ولكن على أي حال الـ Abstract Class هو كلاس مجرد لا يمكن إنشاء كائنات منه مباشرة، بل يستخدم كقاعدة لتعريف سلوك عام يتم توريثه لكلاسات أخرى. وكمثال في بايثون، نقوم بتعريف الكلاس: abstract class Animal: # تعريف السلوك العام def make_sound(self): pass ثم تعريف الدوال المجردة بعد ذلك نستطيع إنشاء كلاسات مشتقة ثم إنشاء كائنات من الكلاسات المشتقة أي كالتالي: from abc import ABC, abstractmethod # تعريف الكلاس المجرد Animal class Animal(ABC): # تعريف الدالة المجردة make_sound() @abstractmethod def make_sound(self): pass # تعريف الكلاس المشتق Dog class Dog(Animal): # إعادة تعريف الدالة make_sound() def make_sound(self): print("Woof!") # تعريف الكلاس المشتق Cat class Cat(Animal): # إعادة تعريف الدالة make_sound() def make_sound(self): print("Meow!") # إنشاء كائنات من الكلاسات المشتقة dog = Dog() cat = Cat() # استدعاء الدالة make_sound() على الكائنات dog.make_sound() cat.make_sound() 1 اقتباس
0 ياسر مسكين نشر 17 فبراير أرسل تقرير نشر 17 فبراير عندما ننشئ كلاس باستخدام الكلمة الأساسية "abstract" قبل تعريف الكلاس، فإننا نقوم بإنشاء كلاس يُعرف كـ "abstract class" وهذا النوع من الكلاسات لا يمكن إنشاء كائنات منها مباشرة، بل يستخدم فقط كقالب للتمديد من قبل كلاسات أخرى. في الكلاس الذي يتم تعريفه كـ "abstract class"، يمكن أن يحتوي على طرقٍ (methods) مجردة (abstract methods)، وهي طرق لم يتم تقديم تنفيذ لها داخل الكلاس نفسه. بدلاً من ذلك، يترك تنفيذ هذه الطرق للكلاسات التي تمتد من الكلاس الـ "abstract". لتعريف كلاس بشكل مبسط باستخدام الـ "abstract"، وبما أنك لم تحدد لغة البرمجة فيمكن استخدام الكود التالي بلغة Java لفهم المبدء جيدا: abstract class Shape { // مثال على طريقة مجردة abstract double area(); // مثال على طريقة غير مجردة void display() { System.out.println("This is a shape."); } } class Circle extends Shape { double radius; Circle(double r) { radius = r; } // تنفيذ الطريقة المجردة double area() { return Math.PI * radius * radius; } } class Main { public static void main(String[] args) { Circle circle = new Circle(5); circle.display(); System.out.println("Area of the circle: " + circle.area()); } } وفي هذا المثال قمت باستخدام كلاس مجرد "Shape" لتحديد سلوك عام للأشكال الهندسية، مع ترك تنفيذ الطرق الخاصة بكل شكل محدد (مثل الدائرة في هذه الحالة) للكلاسات التي تمتد من "Shape". 1 اقتباس
0 Taha Khaled2 نشر 17 فبراير أرسل تقرير نشر 17 فبراير في لغة C++، تقدر تنشئ كلاس مجرد باستخدام الكلمة المفتاحية abstract. ما هو الكلاس المجرد؟ هو كلاس لا يمكن إنشاء كائنات منه مباشرة. يهدف إلى تعريف خصائص وسلوكيات مشتركة بين عدة كلاسات أخرى، لماذا نستخدم الكلاس المجرد تُسهل إعادة استخدام الكود المشترك بين الكلاسات المشتقة. تُتيح لك التركيز على السلوكيات العامة دون الحاجة إلى تفاصيل التنفيذ. مثال بسيط علي كيفية انشاء الكلاس المجرد class AbstractClass { public: // تعريف خصائص عامة virtual ~AbstractClass() {} // تعريف destructor افتراضي // تعريف دالة مجردة virtual void abstractFunction() = 0; protected: // تعريف خصائص محمية private: // تعريف خصائص خاصة }; في هذه الكود البسيط يوضح بنية الكلاس المجرد ويجب ان تتبع بعض القواعد المهمه عند انشاء اي كلاس مجرد يجب تعريف الدوال المجردة باستخدام الكلمة المفتاحية virtual و = 0. لا يتم تعريف جسم الدالة داخل الكلاس المجرد. تُعرف أجسام الدوال المجردة في الكلاسات المشتقة. تُستخدم الكلمة المفتاحية public لتحديد وراثة الكلاس المجرد. يجب إعادة تعريف جميع الدوال المجردة في الكلاسات المشتقة. مثال كامل يمكنك فهم منه كل شئ : class Animal { public: virtual ~Animal() {} // destructor افتراضي virtual void speak() = 0; // دالة مجردة protected: // خصائص محمية private: // خصائص خاصة }; class Dog : public Animal { public: void speak() override { // إعادة تعريف الدالة المجردة cout << "Woof!" << endl; } protected: // خصائص محمية private: // خصائص خاصة }; class Cat : public Animal { public: void speak() override { // إعادة تعريف الدالة المجردة cout << "Meow!" << endl; } protected: // خصائص محمية private: // خصائص خاصة }; int main() { Dog* dog = new Dog(); dog->speak(); // "Woof!" Cat* cat = new Cat(); cat->speak(); // "Meow!" return 0; } شرح الكود الكود يُعرّف كلاسين مجردين (Animal) وكلاسين مشتقين (Dog و Cat): 1. الكلاس المجرد Animal: يُعرّف باستخدام الكلمة المفتاحية abstract. لا يمكن إنشاء كائنات مباشرة منه. يحتوي على:دالة مجردة ()speak : تُعرّف باستخدام virtual و = 0. لا يتم تعريف جسم الدالة. خصائص محمية وخاصة. 2. الكلاسات المشتقة (Dog و Cat): ترث من الكلاس المجرد Animal باستخدام public. تُعيد تعريف الدالة المجردة ()speak : تُعرّف باستخدام override. تُحدد سلوك الدالة الخاص بكل كلاس. قد تحتوي على خصائص محمية وخاصة. اقتباس
السؤال
Esraa .
إنشاء كلاس بإستخدام الAbstract بلغة c++
تم التعديل في بواسطة Esraa Bennourتعديل عنوان السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.