الفرق بين الهيكل والطبقة

مؤلف: Laura McKinney
تاريخ الخلق: 1 أبريل 2021
تاريخ التحديث: 23 أبريل 2024
Anonim
ما الفرق بين الهيموغلوبين والمايوغلوبين ؟ Hemoglobin Vs Myoglobin
فيديو: ما الفرق بين الهيموغلوبين والمايوغلوبين ؟ Hemoglobin Vs Myoglobin

المحتوى


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

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. التشابه
  5. خاتمة

رسم بياني للمقارنة

أساس للمقارنةبناءصف دراسي
الأساسي إذا لم يتم الإعلان عن محدد الوصول ، فسيكون جميع الأعضاء عامين بشكل افتراضي.إذا لم يتم الإعلان عن محدد الوصول ، فسيكون جميع الأعضاء افتراضيًا.
إعلان اسم الهيكل
اكتب struct_element 1؛
اكتب struct_element 2؛
اكتب struct_element 3؛
.
.
.
};
class class_name {
عضو البيانات ؛
وظيفة عضو
};
نموذج مثيل الهيكل يسمى متغير الهيكل.يسمى مثيل فئة الكائن.


تعريف الهيكل

البنية عبارة عن مجموعة من متغيرات أنواع البيانات المختلفة ، وكلها تتم الإشارة إليها باسم واحد. يقوم تعريف الهيكل بتكوين قالب يتم استخدامه لتكوين نسخة من الهيكل. أعلن هيكل على النحو التالي.

struct sname {type struct_element1؛ اكتب struct_element2 ؛ اكتب struct_element3 ؛ . . . المتغير 1، المتغير 2،. . ؛

تعرف الكلمة الأساسية "بنية" إلى المترجم بأنه يتم الإعلان عن البنية. يمثل "الاسم" الاسم المعطى للهيكل. يتم دائمًا إنهاء إعلان الهيكل بفاصلة منقوطة ، حيث يتم اعتباره بيانًا. يمكنك التصريح عن مثيلات البنية قبل انتهائها كما هو مذكور في الكود أعلاه (variable1 ، variable2) أو يمكنك إعلان مثيل البنية في main () ، عن طريق كتابة اسم المثيل مسبوقًا باسم البنية.

// مثال. main () {sname S1، S2؛ }

هنا S1 و S2 هي مثيلات الهيكل. تسمى مثيلات البنية "متغير البنية". يمكن الوصول إلى العنصر المُعلن داخل هيكل الهيكل من خلال متغيرات الهيكل من خلال استخدام عامل التشغيل dot (.).

// المثال S1. struct_element1.

  • يمكن أيضًا إنشاء مصفوفة البنية ، لذلك ، يجب أولاً أن تعلن بنية ، ثم تعلن عن مصفوفة من هذا النوع.

// sample struct sname sarray؛

تقوم العبارة أعلاه بإنشاء صفيف باسم "sarray" يحتوي على عشرة متغير ، ويتم تنظيم كل متغير على النحو المحدد في 'sname'.


  • يمكنك تمرير عضو بنية إلى دالة ، ويمكنك تمرير بنية كاملة إلى دالة.
  • مثل ، مؤشر عدد صحيح ، مؤشر صفيف ، يمكن أيضًا تعريف مؤشر بنية بوضع "*" في مقدمة اسم متغيرات الهيكل.

// sample struct sname * S1؛

ملحوظة:

يتم تخزين عناصر "الهيكل" في مكان متاخم للذاكرة.

تعريف الفئة

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

class class_name {أعضاء البيانات الخاصة ووظائف الأعضاء. access_specifier type data_member؛ اكتب mem_funct (قائمة المعلمات) {. . }} قائمة الكائنات ؛

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

الكائنات ليست سوى مثيل الطبقات. يتم الوصول إلى أعضاء الفئة بواسطة كائن نفس الفئة باستخدام عامل التشغيل dot (.).

//object.mem_funct (الوسائط) ؛

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

التشابه:

  • في C ++ ، كل من البنية والفئة متكافئان بناءً.
  • كل من الهيكل والطبقة يمكن أن يعلن بعض أعضائه خاصين.
  • يمكن استخدام اسم بنية أو فئة كنوع مستقل.
  • كل من هيكل وفئة تدعم آلية الميراث.

خاتمة:

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