"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا لا يتم إنشاء كائن فئة ()؛` كائن C++؟

لماذا لا يتم إنشاء كائن فئة ()؛` كائن C++؟

تم النشر بتاريخ 2024-12-21
تصفح:727

Why Doesn't `Class object();` Create a C   Object?

فهم غياب استدعاء المنشئ

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

المشكلة

السطر الإشكالي:

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

كائن الفئة;
Class object;
خلف الكواليس: التحليل الأكثر إزعاجًا

يسلط مقتطف الكود الأولي الضوء على مشكلة تُعرف باسم "التحليل الأكثر إرباكًا" في لغة C. عند مواجهة السطر:

كائن الفئة ()؛
Class object();
يفسره المحلل اللغوي بشكل غامض إما على أنه إعلان دالة أو استدعاء دالة بقائمة وسيطات فارغة. غالبًا ما يؤدي هذا الغموض إلى ارتباك ونتائج غير متوقعة.

تصحيح الكود

لاستدعاء المنشئ وإنشاء كائن، يجب تحديث الكود إلى:

#include باستخدام مساحة الاسم الأمراض المنقولة جنسيا؛ فئة فئة { فصل() { cout Class object;قم بتشغيل الكود المصحح لملاحظة المخرجات المتوقعة:

تم استدعاء المُنشئ الافتراضي المدمر يسمى
            
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3