المُنشئ ذو المعاملات في C ++: العمل والأمثلة

نشرت: 2021-05-27

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

ما هو المنشئ؟

المُنشئ هو وظيفة عضو في الفصل تُستخدم لتهيئة الكائنات في فئة ما. في C ++ ، عندما يتم إنشاء كائن يمثل مثيل الفئة ، يتم استدعاء المُنشئ تلقائيًا. وبالتالي ، فإن المُنشئ هو وظيفة عضو خاصة بالفئة.

ما هو المنشئ ذو المعاملات؟

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

بناء جملة منشئ معلمات في C ++

class name_of_class {

محدد الوصول (عام / محمي / خاص):

متغيرات العضو

وظائف الأعضاء

عامة:

name_of_class (متغيرات) {// كود المنشئ

}

// وظائف ومتغيرات أخرى

}

تضمن بناء الجملة وجود name_of_class ، متبوعًا بمحدد وصول يحتوي على وظائف الأعضاء ومتغيرات الأعضاء. يتم تضمين كل هذه في التعليمات البرمجية للمنشئ ، مما يعني أنه يمكن استدعاؤها في جسم المنشئ.

اقرأ أيضًا: مشاريع مفتوحة المصدر لـ C ++

مثال على المُنشئ ذي المعاملات في C ++

# تضمين <iostream>

استخدام اسم للمحطة؛

مثال فئة

{

نشر:

الباحث أ ، ب ؛

عامة:

// منشئ معلمة

مثال (int a1، int b1)

{

أ = أ 1 ؛

ب = ب 1 ؛

}

int getA ()

{

عودة

}

int getB ()

{

العودة ب ؛

}

} ؛

انت مين()

{

// استدعاء المنشئ

مثال e1 (5 ، 10) ؛

cout << “e1.a =” << e1.getA () << “، e1.b =” << e1.getB ()؛

العودة 0 ؛

}

انتاج |

Explanation: تم التصريح عن المتغيرات الخاصة a و b في فئة مثال. تم التصريح عن مُنشئ ذي معلمات باستخدام مثال الوظيفة. يتضمن طريقتين getA () و getB (). في الفصل الرئيسي ، يتم استدعاء المُنشئ ، ويتم تعيين قيم وصول المُنشئ.

كيف يعمل المُنشئ ذو المعاملات في C ++؟

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

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

ملاحظة: أنواع الإتصال-

  1. دعوة صريحة- مثال e1 = مثال (0،10)
  2. استدعاء ضمني- مثال e1 (0،10)

الخروج: أفكار مشاريع في C ++ للمبتدئين

ما هو استخدام منشئ معلمة في C ++؟

استخدامات المنشئات ذات المعلمات هي كما يلي:

  • الحمولة الزائدة للمنشئ
  • تُستخدم لتعيين قيم مختلفة لعناصر البيانات المختلفة لكائنات مختلفة عند تهيئتها / إنشائها

مثال آخر:

1. برنامج لحساب مساحة المستطيل

# تضمين <iostream>

استخدام اسم للمحطة؛

// إعلان فئة

مستطيل فئة {

نشر:

طول مزدوج

اتساع مزدوج

عامة:

// إنشاء مُنشئ معلمات

مستطيل (مزدوج len ، مزدوج brt) {

// تهيئة المتغيرات الخاصة

الطول = لين ؛

اتساع = brt ؛

}

حساب مزدوج مساحة () {

طول العودة * عرض؛

}

} ؛

انت مين() {

// إنشاء الكائنات وتهيئة أعضاء البيانات

مستطيل 1 (10 ، 8.6) ؛

مستطيل مستطيل 2 (8.5 ، 6) ؛

cout << “منطقة المستطيل 1:” << rect1.calculateArea () << endl؛

cout << “منطقة المستطيل 2:” << rect2.calculateArea () << endl؛

العودة 0 ؛

}

انتاج |

Explanation: في هذا المثال ، قمنا بإنشاء مستطيل مُنشئ ذو معلمات () مع معلمتين: double len و double bdt. تحتوي هذه المعلمات على القيم التي يتم استخدامها لتهيئة متغيرات العضو الطول والعرض. عندما نقوم بإنشاء كائن من فئة المستطيل ، فإننا نمرر قيم متغيرات الأعضاء كوسائط. يمكننا حساب المنطقة باستخدام دالة calculateArea () عند تهيئة متغيرات العضو.

1. عرض علامات الطلاب

# تضمين <iostream>

استخدام اسم للمحطة؛

طالب فئة {

عامة:

int std_id؛ // عضو البيانات

سلسلة std_name ؛ // أيضًا متغير حالة

تعويم std_marks ؛

الطالب (int i، string a، float b)

{

std_id = أنا ؛

std_name = أ ؛

العلامات المنقولة جنسيا = ب ؛

}

عرض باطل ()

{

cout << std_id << ”“ << std_name: << ”“ << std_marks << endl؛

}

} ؛

int main (void) {

الطالب s1 = الطالب (101 ، "Soniya" ، 89) ؛ // إنشاء كائن للطالب

الطالب s2 = الطالب (102 ، "ناكول" ، 59) ؛

s1.display () ؛

s2.display () ، العودة 0 ؛

}

انتاج |

Explanation: المعرف والاسم والعلامات أعضاء في البيانات (أيضًا متغيرات الحالة). الطالب هو مُنشئ ذو معلمات ، ويتم إنشاء كائناته في الفصل الرئيسي.

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

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

الآن بعد أن أصبحت على دراية بالمنشآت ذات المعلمات في C ++ ، إذا كنت ترغب في التعمق في مهنة البرمجة الخاصة بك ، فاستكشف الدورات التدريبية من upGrad ، أكبر شركة للتعليم العالي عبر الإنترنت في الهند. يجب عليك التحقق من برنامج تطوير البرامج Full-Stack الخاص بنا .

ما هو المنشئ؟

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

كم عدد المنشئين يمكن أن يكون هناك في الفصل؟

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

ما هي البرمجة الشيئية؟

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