مع تقديم C 11، حصل المطورون على مجموعة جديدة من خيارات بناء الجملة لتهيئة الفئات، إضافة إلى القائمة بالفعل مُهيئ محاط بقوسين. لقد قدم هذا العدد الكبير من الاختيارات معضلة محيرة: متى يتم استخدام كل خيار في بناء الجملة؟
تشير الإرشادات المقدمة إلى أنه إذا كان القصد هو تعيين قيمة دقيقة لكائن ما ، يجب تفضيل تهيئة النسخ (=). وذلك لأنه يقلل من خطر استدعاء مُنشئ صريح قد يكون له دلالات مختلفة عن غير قصد. يجب أخذ تهيئة الأقواس بعين الاعتبار في حالة عدم توفر تهيئة النسخ، ويجب استخدام تهيئة الأقواس كملاذ أخير.
تتفوق تهيئة الأقواس المتعرجة عند التهيئة بقيم متعددة تهدف إلى يتم تخزينها داخل الكائن. يعد بناء الجملة هذا مناسبًا بشكل خاص للمتجهات والمصفوفات والأعداد المركبة.
عندما تصف القيم المقدمة أثناء التهيئة الحالة أو السلوك المقصود للكائن بدلاً من بياناته الفعلية ، يجب استخدام تهيئة الأقواس. هذا هو الحال غالبًا مع الوسائط التي تحدد الحجم أو أسماء الملفات.
ضع في اعتبارك مقتطفات التعليمات البرمجية التالية:
{ // Example 1
int b(1); // Copy initialization for exact value
int a{1}; // Brace initialization for stored value
int c = 1; // Parentheses initialization for descriptor value (e.g., size)
int d = {1}; // Brace initialization for stored value
}
{ // Example 4
std::function a(std::plus()); // Copy initialization for callback function
std::function b{std::plus()}; // Brace initialization for callback function, likely unwanted
}
من خلال اتباع الإرشادات المقترحة، يمكن للمطورين التعامل مع تعقيدات بناء جملة مُهيئ C 11 بثقة، مما يضمن أن التعليمات البرمجية الخاصة بهم دقيقة وفعالة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3