Latest web development tutorials

C ++ فئة تخزين

وتحدد فئة تخزين وC ++ المتغيرات برنامج / مجموعة وظيفة (الرؤية) ودورة الحياة. هذه المحددات وضعت قبل أن تعديل نوع. المدرجة أدناه هي هي برامج التخزين فئة C ++ المتاحة:

  • السيارات
  • تسجيل
  • ساكن
  • خارجي
  • متقلب

فئة تخزين السيارات

فئة تخزينالسيارات هو كل محلية من الدرجة المتغيرات التخزين الافتراضي.

{
   int mount;
   auto int month;
}

يحدد المثال أعلاه متغيرين مع فئة تخزين نفس، والسيارات يمكن أن تستخدم إلا في إطار وظيفة، وهي السيارات يعدل فقط المتغير المحلي.

تسجيل فئة تخزين

يستخدمتسجيل فئة تخزين لتحديد المخزنة في سجلات بدلا من ذاكرة الوصول العشوائي في المتغيرات المحلية.وهذا يعني أن الحد الأقصى لحجم المتغير يساوي حجم التسجيل (عادة ما تكون كلمة)، والتي لا يمكن تطبيقها على أنه عامل أحادي '&' (لأنه لا يوجد لديه مكان الذاكرة).

{
   register int  miles;
}

تحتاج تسجيل فقط للوصول السريع إلى المتغيرات، مثل العداد. كما تجدر الإشارة إلى أن تعريف "تسجيل" لا يعني أن يتم تخزين هذا المتغير في السجل، فهذا يعني أن المتغير قد تكون مخزنة في السجل، اعتمادا على القيود المفروضة على الأجهزة والتنفيذ.

فئة تخزين ثابتة

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

معدل ثابت يمكن تطبيقه على المتغيرات العالمية. عندما تعديل متغير عمومي ثابت، فإن المتغير يحد من نطاق البيان في ملفاتها.

في C ++، عند استخدامها على أعضاء البيانات الدرجة ثابت، وجميع الأشياء يؤدي في نسخة واحدة فقط من الطبقة المشتركة الاعضاء.

#include <iostream>
 
// 函数声明 
void func(void);
 
static int count = 10; /* 全局变量 */
 
int main()
{
    while(count--)
    {
       func();
    }
    return 0;
}
// 函数定义
void func( void )
{
    static int i = 5; // 局部静态变量
    i++;
    std::cout << "变量 i 为 " << i ;
    std::cout << " , 变量 count 为 " << count << std::endl;
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

变量 i 为 6 , 变量 count 为 9
变量 i 为 7 , 变量 count 为 8
变量 i 为 8 , 变量 count 为 7
变量 i 为 9 , 变量 count 为 6
变量 i 为 10 , 变量 count 为 5
变量 i 为 11 , 变量 count 为 4
变量 i 为 12 , 变量 count 为 3
变量 i 为 13 , 变量 count 为 2
变量 i 为 14 , 变量 count 为 1
变量 i 为 15 , 变量 count 为 0

فئة تخزين خارجي

يستخدم فئة تخزينخارجي لتوفير مرجع إلى متغير عمومي، متغير عالمي لجميع ملفات البرنامج مرئية.عند استخدام 'خارجي'، الذي لا يمكن تهيئة متغير، ويشير اسم المتغير إلى موقع تخزين المعرفة مسبقا.

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

يستخدم معدل خارجي ... عادة عندما يكون هناك نوعان أو أكثر من الملفات تتشارك المتغيرات أو وظائف من الزمن العالمية نفسها، على النحو التالي:

الملف الأول: MAIN.CPP

#include <iostream>
 
int count ;
extern void write_extern();
 
int main()
{
   count = 5;
   write_extern();
}

الملف الثاني: support.cpp

#include <iostream>
 
extern int count;
 
void write_extern(void)
{
   std::cout << "Count is " << count << std::endl;
}

هنا، يتم استخدام الكلمة الثانية ملفخارجيللإعلان عن عدد الأولى التي تم تعريفها في MAIN.CPP الملف في. الآن، تجميع كل الملفات، على النحو التالي:

$ g++ main.cpp support.cpp -o write

وهذا يولدإرسال يحاول برنامج قابل للتنفيذ لأداء الكتابة،وسوف تؤدي إلى النتائج التالية:

$ ./write
Count is 5

فئة تخزين قابلة للتغيير

ينطبق محددقابلة للتغيير فقط إلى طبقات الكائن، والتي ستكون في نهاية هذا البرنامج التعليمي لشرح.فهو يتيح للأعضاء من الثوابت كائن بديل. وهذا هو، عضو قابلة للتغيير ويمكن تعديلها من قبل وظائف الأعضاء CONST.