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

كيفية تجنب تظليل المتغيرات في أساليب فئة C++؟

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

How to Avoid Shadowing Variables in C   Class Methods?

تظليل المتغيرات في لغة C

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

في تعريف الفئة المحددة:

class Measure {
int N;
double measure_set[];
char nomefile[];
double T;
};

سيتم تظليل متغير العضو T بواسطة المتغير T المعلن في طريقة الحصول:

void Measure::get() {
int M=0;
int nmax=50;

// ...

cout > T;
cout 

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

أسماء المتغيرات المميزة:

class Measure {
int N;
double measure_set[];
char nomefile[];
double temperature; // Rename variable
};

void Measure::get() {
// ...

cout > temperature;
cout  

بادئات أعضاء الفصل:

class Measure {
int m_N;
double m_measureSet[];
std::string m_nomefile;
double m_T;
};

void Measure::get() {
// ...

cout > m_T;
cout من خلال بادئة متغيرات الأعضاء باسم الفئة أو معرف محدد، يمكنك تجنب تضارب الأسماء والتأكد من أن المتغيرات المظللة لا تتداخل مع أعضاء الفئة.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3