Logo ar.removalsclassifieds.com

الفرق بين الفئة والبنية (مع الجدول)

جدول المحتويات:

Anonim

إن مسألة استخدام فئة أو بنية أمر شائع بين مبرمجي C ++ أثناء تصميم الكود. بين أصغر المطورين ، هناك غيمة من المفاهيم الخاطئة حول الاختلاف بين الفصل الدراسي والبنية الفنية. حتى بعد فهم الاختلافات ، يختلف المطورون أحيانًا حول كود أكثر ملاءمة.

في.NET ، توجد فئتان من الأنواع بشكل عام ، الفئة التي تعد نوعًا مرجعيًا والبنية هي نوع القيمة. يعيش نوع المرجع بشكل أساسي في الكومة ، بينما يعيش نوع القيمة في السطر. يمكن توضيح العديد من الاختلافات الأخرى من خلال هذه المقالة.

فئة مقابل الهيكل

يتمثل الاختلاف الرئيسي بين الفئة والبنية في أن الفئة عبارة عن نوع مرجعي يتم تخصيصه في الكومة بالإضافة إلى مجموعة البيانات المهملة. من ناحية أخرى ، فإن البنية هي نوع قيمة يتم تخصيصه إما على السطر أو المكدس في الأنواع المحتوية.

الفئة الموجودة في C ++ تشبه إلى حد بعيد بنية C. يتكون من قائمة أعضاء البيانات ومجموعة العمليات التي يتم إجراؤها بشكل عام على الفصل. يمكن القول أنه في البرمجة الشيئية ، الفصل هو لبنة البناء. يشبه الفصل أيضًا مخطط كائن.

الهيكل هو نوع بيانات من نوع القيمة. يساعد على جعل متغير واحد يحتفظ ببيانات مرتبطة من عدة أنواع. أثناء إنشاء هيكل ، يتم استخدام الكلمة الأساسية "هيكل". عندما يتم إنشاء كائن هيكلي باستخدام عامل التشغيل الجديد ، يتم استدعاء المُنشئ المناسب ، ويتم إنشاؤه.

جدول المقارنة بين الفئة والبنية

معلمات المقارنة فصل هيكل
الرؤية الافتراضية نشر عام
الحجم عند الفراغ 1 بايت 0 بايت
متغيرات الأعضاء التهيئة يسمح لا يسمح
جمع القمامة ممكن لأنه يستخدم تمرير حسب المرجع غير ممكن لأنه يستخدم تمرير حسب القيمة
إعادة الاستخدام تماما لا

ما هو الفصل؟

في برمجة C ++ ، يكون الفصل عبارة عن بنية بيانات أو نوع معرف بواسطة المستخدم له وظائف وبيانات كأعضائه. الوصول الافتراضي خاص لأعضاء فئة C ++. يفشل الأعضاء الخاصون في الوصول إلى خارج الفصل ولا يمكن الوصول إليهم إلا من خلال طرق الفصل. الوراثة مسموح بها في الفصل لأن وظيفتها يمكن أن توارثها فئاتها الفرعية

تُعرف مثيلات نوع بيانات الفئة بالكائنات. يمكن أن تحتوي على وظائف الأعضاء وعوامل محملة بشكل زائد وثوابت متغيرة يحددها المبرمج. بمساعدة قوالب الفصل ، يمكن إنشاء إعلان الفصل. تمثل قوالب الفصل هذه عائلة صفية.

يتم الحصول على إعلان فئة فعلية عن طريق إنشاء مثيل بواحدة أو أكثر من وسيطات القالب. يتم تعريف تخصص القالب على أنه إنشاء مثيل لقالب بمجموعة معينة من الوسائط. يحاول بناء جملة C ++ جعل الهياكل تبدو في كل جانب مثل أنواع البيانات الأساسية.

فئات C ++ لها أعضائها. يُعلن أن أعضاء الفئات يمكن الوصول إليهم إما بشكل خاص أو للجمهور بواسطة المحددات على التوالي. بعد المحدد ، إذا تمت مصادفة أي عضو ، فسيكون لديه حق الوصول المقترن ما لم يتم مصادفة محدد آخر.

ما هو الهيكل؟

باختصار ، تشير البنية عمومًا إلى الحزمة. هناك العديد من العناصر ذات الصلة التي يلزم ربطها معًا في سياق بطريقة معينة. يمكن لهذا النوع من السياق تمرير رقم مقيد من الوسائط إلى دالة.

من حيث لغة البرمجة C ، فهي عبارة عن إعلان عن نوع بيانات مركب. تحدد بشكل عام قائمة متغيرات فعلية مجمعة تحت اسم واحد في كتلة الذاكرة. يسمح بالوصول إلى المتغيرات المختلفة من خلال نقطة واحدة أو من خلال اسم الهيكل المعلن الذي يُرجع العنوان الذي هو نفسه.

يمكن أن تحتوي البنية على أنواع بيانات أخرى لاستخدامها في السجلات ذات نوع البيانات المختلط أو الأنواع المختلطة الأخرى. في C ، يشير إلى الكتلة المجاورة للذاكرة الفعلية ، والمحددة عمومًا بحدود طول الكلمة. نتيجة لذلك ، يقع كل حقل في إزاحة معينة ثابتة منذ البداية.

عندما يتعلق الأمر بلغة C ++ ، فإن البنية تشبه فئة C ++ ولكن الرؤية الافتراضية مختلفة تمامًا. يمكن تخصيصه ديناميكيًا أو تخصيصه بشكل ثابت إما على الكومة أو المكدس بمؤشر صريح. الرؤية الافتراضية لـ Struct في C ++ خاصة.

الاختلافات الرئيسية بين الفئة والبنية

استنتاج

يمكن الاستنتاج أن كلا من الفئة والبنية شائعان بين مبرمجي C ++. الفئة هي نوع مرجعي يتم تخصيصه في الكومة بالإضافة إلى مجموعة البيانات المهملة. على الجانب الآخر ، الهيكل هو نوع قيمة يتم تخصيصه إما على السطر أو المكدس في الأنواع المحتوية.

عندما يتعلق الأمر بالرؤية ، فإن الرؤية الافتراضية تكون خاصة في الفصل ، بينما تكون عامة في هيكل. جمع البيانات المهملة ممكن في الفصل لأنه يستخدم المرجع التمريري. من ناحية أخرى ، في البنية ، لا يمكن جمع البيانات المهملة لأنها تستخدم قيمة المرور. حجم الفئة هو 1 بايت عندما تكون فارغة ، بينما في حالة ضرب ، يكون 0 بايت.

مراجع

الفرق بين الفئة والبنية (مع الجدول)