سؤال

ما هي المتغيرات الثابتة المصممة ل؟ ما الفرق بين int static و int؟

هل كانت مفيدة؟

المحلول

ال static الكلمة الرئيسية لها أربعة استخدامات منفصلة ، اثنان منها فقط مرتبطان ارتباطًا وثيقًا:

  • ثابت في Global ومساحة المساحة (المطبق على كل من المتغيرات والوظائف) يعني الارتباط الداخلي
    • يتم استبدال هذا مساحات أسماء لم يكشف عن اسمها وهو غير مرتبط بالباقي
    • على وجه الخصوص ، يميل الآخرون إلى أن يعني نوعًا من التفرد ، لكن الارتباط الداخلي يعني عكس: يمكن أن يكون لديك العديد من الكائنات ذات الاسم نفسه ، طالما أن كل منها له صلة داخلية ولديك فقط وحدة ترجمة واحدة فقط
  • يتم "مشاركة" أعضاء البيانات الثابتة بين جميع حالات الفصل
    • يبدو الأمر وكأنهم مستقلون عن أي مثيل فئة
    • يتم تجميع هذا أحيانًا بطرق ثابتة
  • الأساليب الثابتة لا "تعمل" على مثيل حالي
    • رقم هذه مؤشر يمكن الاتصال بدون مثيل
  • تستمر المتغيرات المحلية الثابتة (في الوظائف) عبر نطاق كل استدعاء وظيفة

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

الآن أيهما يرتبطان ارتباطًا وثيقًا؟ ليس عضوان الفصل - التحذير حول الدولة العالمية يعطيها. يمكنك النظر في أعضاء البيانات الثابتة كمتغيرات محلية ثابتة ، حيث تكون الوظائف التي ينتمون إليها كلها طرقًا للفئة ، بدلاً من وظيفة واحدة.

لقد وجدت الكثير أسئلة ذات صلة, ، ولكن ، من المثير للدهشة ، لا التكرارات.

نصائح أخرى

تتم تهيئة المتغيرات الثابتة في قطاع البيانات (على x86 ؛ تعديل حسب الاقتضاء للبنية الأخرى) بدلاً من على المكدس. يستمرون في حياة البرنامج بدلاً من التبخير بمجرد خروجهم من النطاق.

يمكن الرجوع إلى عضو ثابت بدون مثيل.

انظر قسم "الأعضاء الثابتة" هنا: http://www.cplusplus.com/doc/tutorial/classes2/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top