21 الأكثر قراءة أسئلة وأجوبة المقابلات C ++ [للمستجدين]

نشرت: 2020-12-17

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

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

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

أسئلة وأجوبة المقابلة C ++

  1. حدد "فئة" و "كائن".

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

الكائن هو مثيل لفئة. إنه كيان وقت التشغيل يمكن أن يمثل شخصًا أو مكانًا أو شيءًا.

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

  1. ما هو "محدد الوصول؟"

يحدد محدد الوصول كيف يمكن الوصول إلى أعضاء الفصل (الوظائف والمتغيرات) خارج نطاق الفصل. يحتوي C ++ على ثلاثة أنواع من محددات الوصول

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

محدد فئة التخزين القابل للتغيير ينطبق فقط على متغيرات الأعضاء غير الثابتة وغير الثابتة للفئة لتغيير عضو كائن الفئة الثابتة عن طريق إعلانه.

  1. ما هو التغليف؟

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

  1. ما هو التجريد؟

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

  1. ما هو Namespace؟

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

  1. عرّف "تعدد الأشكال". كم عدد أنواع تعدد الأشكال الموجودة في C ++؟

يعني تعدد الأشكال حرفياً وجود أشكال متعددة. في C ++ ، يحدث تعدد الأشكال عندما توجد أكثر من وظيفة واحدة تحت نفس الاسم ولكن مع وظائف متنوعة.

تعدد الأشكال نوعان:

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

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

قراءة: أسئلة وأجوبة مقابلة جافا

  1. ما هي وظيفة مضمنة؟

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

الصيغة القياسية للدالة المضمنة هي:

اسم دالة من نوع الإرجاع المضمنة (معلمات)

{

// رمز الوظيفة هنا

}

  1. ما هو مؤشر "هذا"؟

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

قراءة : أسئلة وأجوبة مقابلة SQL

  1. هل تحتوي لغة ++ C على نوع سلسلة من البيانات البدائية؟

لا يمكن أن تحتوي لغة C ++ على نوع بيانات بدائي للسلسلة ، ولكنها تحتوي على فئة من مكتبة القوالب القياسية (STL).

  1. ما هي وظيفة مشغل نطاق القرار؟

يخدم مشغل تحليل النطاق غرضين:

  • يساعد في حل نطاق المتغيرات العالمية.
  • عندما يتم تعريف دالة خارج فئة ، يربط عامل دقة النطاق هذه الوظيفة بالفئة.
  1. ما هو المدمر؟

تسمى وظيفة العضو للفئة المدمرة. الاسم هو نفسه اسم الفئة ولكن مع رمز التلدة (~) كبادئة. عندما يفقد الكائن نطاقه ، يتم تنفيذ المدمرات تلقائيًا.

  1. اشرح الفرق بين فئة الكلمات الرئيسية وبنية الكلمات الرئيسية.

تمثل فئة الكلمات الرئيسية الأعضاء الخاصين افتراضيًا ، بينما تشبه بنية الكلمات الأساسية الأعضاء العموميين افتراضيًا.

  1. حدد وظيفة افتراضية خالصة.

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

الصيغة القياسية لوظيفة افتراضية خالصة هي:

الفراغ الظاهري abc () = 0 ؛ // وظيفة افتراضية خالصة.

تحقق من: 15 نصيحة للمقابلة لتبرز في مقابلة العمل

  1. ما هو الغرض من قالب الفصل؟

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

  1. ماذا يعني "خطأ تجاوز السعة"؟

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

  1. كيف يختلف حذف وحذف []؟

تقوم وظيفة الحذف بتحرير وحدة واحدة من الذاكرة المخصصة باستخدام عامل التشغيل "الجديد" ، بينما يحرر حذف [] مجموعة الذاكرة المخصصة التي تم تخصيصها بواسطة عامل التشغيل [] الجديد.

  1. ما هو الغرض من vTable و vptr في C ++؟ كيف يعاملهم المترجم؟

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

في كل منشئ لتعيين vptr للكائن الذي يتم إنشاؤه والإشارة إلى vTable للفئة.

في الكود الذي يحتوي على استدعاء متعدد الأشكال. يقوم المترجم بإدراج الكود في كل مكان يتم فيه الإعلان عن مكالمة متعددة الأشكال للبحث عن vptr باستخدام مؤشر / مرجع الفئة الأساسية. بمجرد الحصول على vptr ، يمكنك الوصول إلى vTable الخاص بالفئة المشتقة. يمكنك استخدام vTable للوصول واستدعاء دالة الفئة المشتقة show ().

  1. في C ++ ، أين يتم تخزين المتغير التلقائي؟

جميع المتغيرات المحلية هي متغيرات تلقائية بشكل افتراضي ويتم تخزينها في ذاكرة المكدس.

  1. كيف يمكنك تصدير وظيفة من DLL؟

هناك طريقتان لتصدير دالة من DLL:

  • يمكنك استخدام مكتبة نوع DLL.
  • يمكنك الرجوع إلى الوظيفة من مثيل DLL.

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

خاتمة

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

إذا كنت مهتمًا بمعرفة المزيد حول تطوير البرامج كاملة المكدس ، فتحقق من برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم و 9+ مشاريع و المهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

كن مطورًا للمكدس الكامل

تقدم الآن للحصول على درجة الماجستير في هندسة البرمجيات