"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ## لماذا يتم تخزين قيمة درجة الحرارة الخاصة بي في الصفيف بدلاً من المتغير المقصود في فئة C ++ الخاصة بي؟

## لماذا يتم تخزين قيمة درجة الحرارة الخاصة بي في الصفيف بدلاً من المتغير المقصود في فئة C ++ الخاصة بي؟

نشر في 2025-03-22
تصفح:885

## Why is my temperature value being stored in the array instead of the intended variable in my C   class?

تظليل المتغيرات في c

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

int n ؛ double measure_set [] ؛ Char Nomefile [] ؛ مزدوج ر ؛ عام: void get () ؛ void printall () ؛ متوسط ​​مزدوج () ؛ مزدوج thermal_comp () ؛ } ؛

تهدف طريقة الحصول في هذه الفئة إلى قراءة القيم من ملف وحفظها في صفيف measure_set ، وقراءة قيمة درجة الحرارة وتخزينها في متغير t. cout > nomefile ؛ cout > meace_set [m] ؛ إذا (f.eof ()) استراحة ؛ م ؛ } f.close () ؛ ن = م 1 ؛ cout > t ؛ cout لاحظت أن قيمة درجة الحرارة (t) يتم تخزينها في العنصر الأول من Assess_set Array (measure_set [0]) بدلاً من المتغير t المقصود. في هذه الحالة ، تم الإعلان عن متغير T في طريقة GET. هذا:
class Measure {
    int N;
    double measure_set[];
    char nomefile[];
    double T;

    public:
    void get( );
    void printall( );
    double mean( );
    double thermal_comp( );
};
قياس باطل :: get () { cout > nomefile ؛ cout > meace_set [m] ؛ إذا (f.eof ()) استراحة ؛ م ؛ } f.close () ؛ ن = م 1 ؛ cout > درجة الحرارة ؛ t = درجة الحرارة ؛ cout باستخدام مشغل دقة النطاق للإشارة صراحة إلى متغير عضو الفصل سيبدو مثل هذا:

    cout > nomefile ؛
    cout > meace_set [m] ؛
        إذا (f.eof ()) استراحة ؛
        م ؛
    }
    f.close () ؛
    ن = م 1 ؛

    cout > هذا-> t ؛  // استخدم مشغل دقة النطاق للإشارة إلى متغير عضو الفصل
    cout 
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3