سؤال محير بالنسبة لي فكلما قرأت تعريف الـ class وجدته تماما
كالـ struct :
- ما الفرق بينهما؟
- فيمَ يتفوّق أحدهما على الآخر؟
- هل يمكن إستخدام احدهما بدل الاخر؟؟(f) ©
سؤال محير بالنسبة لي فكلما قرأت تعريف الـ class وجدته تماما
كالـ struct :
- ما الفرق بينهما؟
- فيمَ يتفوّق أحدهما على الآخر؟
- هل يمكن إستخدام احدهما بدل الاخر؟؟(f) ©
السلام عليكم.
أخي : ال Struct هو كائن من أجل تخزين بيانات فقط Data أما ال Class فهو كائن مستخدم في البرمجة غرضية التوجه OOP و يتم فيه تخزين البيانات مع الشيفرة المراد تنفيذها على هذه البيانات أي تم ربط الشيفرة مع البيانات Encapsulation و طبعا يتفوق ال Class على ال Struct و عمليا يعتبر مفهوم ال Struct محتوى ضمن مفهوم ال Class و بالتالي يمكن استخدام ال Class بدلا عن ال Struct بسهولة أما العكس فيتم و لكن بصعوبة ( و لا ينصح به ) .
مع التحيات.
بسم الله الرحمن الرحيم
الاخ الكريم
إن الفرق الاساسى بين الclassوال struct
ان الوضع الافتراضى لمدى البيانان (scope) فى ال struct هو public
بينما فى ال class فهو private
والسبب فى هذا ان لغة السى++ هى oop
ومن اساسيات ال oop الكبسلة او حماية البيانات
بخلاف ذلك فلا فرق والله اعلم فكلاهما يمكنكه ان يحتوى على بيانات ووظائف
ولكن جرت عادة المبرمجين انهم يستخدمون الstruct لتجميع البيانات (data)
معا ولا يضيفون اليه وظائف(functions) بينما فى حالة الclass فإنهم يجمعون المتغيرات والوظائف معا
والله اعلم
أشكركم على التجاوب وعندي اضافة ..
في السي++ الstruct وال class متشابهين جدا في مابينهم ويمكن استخدام الواحد بدال الآخر وحتى أنه يمكن القول أن struct هو class . وكما قال الأخ محمد الحسيني فإن الوضع الطبيعي لعناصر الstruct هو ال public أما ال class هو الprivate .
ال struct في سي++ يمكن استخدامه من أجل احتواء data و functios تماما كما في ال class وأيضا يمكن أن يحتوي على باني constructor و هادم destructor . وأيضا يمكن أن يحتوي على عناصر private و public و protected و static و virtual و pure virtual . ويمكن استخدامه في التوارث .
يعني بالمختصر تماما متل الكلاس لكن الفرق الوحيد هو متل ما ذكر محمد أن الوضع الافتراضي للبيانات في ال struct هو public أما الكلاس فهو private ..
أنا أحيانا أقوم بعمل struct وأضع له constructor تماما كما في الكلاس ..
وشكرا والسلام ..
Coding on the Cloud and for the Cloud!
هذا الموضوع مغلق.