اسٹوریج کلاس C ++ اور اس کی اقسام میں کیا ہے؟



اس اسٹوریج کلاس بلاگ میں ، ہم C ++ میں استعمال ہونے والی اسٹوریج کی مختلف کلاسوں کو دیکھیں گے جیسے مثال کے ساتھ آٹو ، رجسٹر ، جامد ، بیرونی اور متغیر۔

میں اسٹوریج کلاس سی ++ متغیر / افعال کی زندگی بھر اور مرئیت کی وضاحت کرتا ہے۔ لائف ٹائم وہ مدت ہے جس تک متغیر فعال رہتا ہے اور مرئیت پروگرام کے مختلف ماڈیولز سے کسی متغیر کی رسائ ہوتی ہے۔ یہ کسی پروگرام کے رن ٹائم کے دوران کسی خاص متغیر کے وجود کا سراغ لگانے میں مدد کرتا ہے۔ اس اسٹوریج کلاس بلاگ میں ، ہم C ++ میں استعمال ہونے والی اسٹوریج کی مختلف کلاسوں کو دیکھیں گے۔

چلو شروع کریں.





C ++ میں اسٹوریج کلاس کیا ہے؟

C ++ میں ہر متغیر میں ڈیٹا کی قسم اور اسٹوریج کلاس ہوتا ہے۔ ڈیٹا کی قسم اعداد و شمار کی قسم کی وضاحت کرتی ہے جو کسی متغیر جیسے انٹ ، فلوٹ ، چار وغیرہ میں محفوظ کی جاسکتی ہے اسٹوریج کلاس متغیر کی دو مختلف خصوصیات کو کنٹرول کرتی ہے: زندگی اور گنجائش۔

آپ نے دیکھا ہوگا کہ ہر متغیر کے پاس ڈیٹا کی قسم موجود ہے ، لیکن آپ نے اب تک کسی متغیر کے ساتھ کوئی اسٹوریج کلاس نہیں دیکھی ہوگی۔ دراصل ، اگر آپ اسٹوریج کلاس کی وضاحت نہیں کرتے ہیں تو ، مرتب خود بخود اس کو اسٹوریج کی ایک کلاس تفویض کردیتا ہے۔ ایک متغیر کا اسٹوریج کلاس میموری میں متغیر کے ذخیرہ کرنے کے مقام ، ڈیفالٹ ابتدائی قدر ، متغیر کی گنجائش اور اس کی زندگی بھر کے بارے میں معلومات فراہم کرتا ہے۔



ذخیرہ کلاس کی اقسام

سی ++ پروگرام میں پانچ اسٹوریج کلاسز ہیں:

  • آٹو
  • رجسٹر کریں
  • جامد
  • بیرونی
  • بدلنے والا

آئیے اسٹوریج کلاس میں سے ہر ایک پر تفصیل سے بات کرتے ہیں۔

آٹو اسٹوریج کلاس

خودکار (آٹو) اسٹوریج کلاس تمام مقامی متغیرات کے ل storage ڈیفالٹ اسٹوریج کلاس ہے ، جو کسی فنکشن یا بلاک کے اندر اعلان کی جاتی ہے۔ لکھتے وقت آٹو کیورڈ شاذ و نادر ہی استعمال ہوتا ہے C ++ پروگرام .



آٹو متغیرات کا دائرہ اس فنکشن یا بلاک کے اندر ہے جہاں ان کا اعلان کیا گیا ہے اور اس فنکشن یا بلاک سے باہر اس تک رسائی حاصل نہیں کی جاسکتی ہے۔ اس کو پیرنٹ بلاک / فنکشن کے اندر اندر اندر اندراج شدہ بلاکس کے اندر بھی رسائی حاصل کی جاسکتی ہے جس میں آٹو متغیر کا اعلان کیا گیا تھا۔

آپ پوائنٹر متغیر کا استعمال کرکے آٹو متغیرات کو ان کے دائرہ کار سے باہر تک رسائی حاصل کرسکتے ہیں۔ آپ کو اسی میموری جگہ کی طرف اشارہ کرنے کی ضرورت ہے جہاں متغیر رہ رہے ہیں۔

اس کی زندگی بھر کی تقریب جیسی ہے۔ ایک بار جب کسی فنکشن کی عمل درآمد ختم ہوجاتا ہے تو ، متغیر کو ختم کردیا جاتا ہے۔

پہلے سے طے شدہ طور پر ، اعلان کے دوران ردی کی ٹوکری میں ان کی قیمت مقرر کی جاتی ہے۔

نحو:

ڈیٹا ٹائپ var_name1 [= قدر]

یا

آٹو ڈیٹا ٹائپ var_name1 [= قدر]

مندرجہ بالا مثال میں ، ایک ہی اسٹوریج کلاس کے ساتھ دو متغیرات کی تعریف کی گئی ہے۔ آٹو کو صرف مقامی متغیر کی وضاحت کے لئے استعمال کیا جاسکتا ہے یعنی افعال کے اندر۔

اسٹوریج کلاس رجسٹر کریں

جیسا کہ نام سے پتہ چلتا ہے ، رجسٹر اسٹوریج کلاس رجسٹر متغیرات کا اعلان کرنے کے لئے استعمال کیا جاتا ہے۔ رجسٹر متغیر کی تمام فنکشنلائز آٹو متغیر کی طرح ہے سوائے اس کے کہ اگر کوئی مفت رجسٹر دستیاب ہو تو کمپائلر ان متغیرات کو مائکرو پروسیسر کے رجسٹر میں محفوظ کرنے کی کوشش کرتا ہے۔ اگر ایک مفت رجسٹر دستیاب نہیں ہے ، تو یہ صرف میموری میں محفوظ کیے جاتے ہیں۔

اس طرح ، رجسٹر متغیر پر آپریشن دوسرے متغیر کے مقابلے میں بہت تیز ہوتا ہے جو پروگرام کے رن ٹائم کے دوران میموری میں محفوظ ہوتا ہے۔

عام طور پر ، پروگرام میں چلنے والے وقت کو بہتر بنانے کے ل few کچھ متغیر جن کو پروگرام میں کثرت سے رسائی حاصل کرنے کی ضرورت ہوتی ہے ، رجسٹر اسٹوریج کلاس کے اندر اعلان کیا جاتا ہے۔ رجسٹر متغیر کا پتہ پوائنٹر کا استعمال کرتے ہوئے حاصل نہیں کیا جاسکتا۔

متغیر کا زیادہ سے زیادہ سائز رجسٹر کے سائز (یعنی تقریبا ایک لفظ) کے برابر ہے۔ اس میں ایک متحرک ‘&’ آپریٹر نہیں لگایا جاسکتا ہے کیونکہ اس میں میموری کی جگہ نہیں ہے۔

نحو:

ڈیٹا ٹائپ var_name1 [= قدر] درج کریں

مثال:

sql سرور انضمام کی خدمات ssis قدم بہ بہ قدم سبق
{رجسٹر int pi}

’رجسٹر‘ کی تعریف کا مطلب یہ نہیں ہے کہ متغیر کسی رجسٹر میں محفوظ ہوجائے گا۔ یہ ہارڈ ویئر اور عمل درآمد کی پابندیوں کے لحاظ سے کسی رجسٹر میں محفوظ ہوسکتا ہے۔

آئیے رجسٹر اور آٹو اسٹوریج کلاسوں کی ایک مثال دیکھتے ہیں۔

مثال:

# نام کی جگہ ایس ٹی ڈی کا استعمال کرتے ہوئے // متغیر کا اعلان کرتے ہوئے جس کو بیرونی بنانا ہے // ایک داخلی قیمت کو بھی ایکس انٹ ایکس باطل آٹو اسٹورجکلاس () {پرنٹف ('این ڈیمسٹریٹنگ آٹو کلاسن') سے شروع کیا جاسکتا ہے / ایک آٹو متغیر کا اعلان (محض سیدھے // تحریری طور پر 'int a = 32' بھی کام کرتا ہے) int num = 32 // آٹو متغیر کی طباعت 'a' printf ('متغیر کی قیمت' نمبر '' 'کو آٹو قرار دیا گیا:٪ dn'، num) printf ( '--------------------------------') oid باطل رجسٹر اسٹورجکلاس () {پرنٹف ('n نمائندہ رجسٹر کلاسن') / / رجسٹر متغیر رجسٹر چار c = 'G' // پرنٹر متغیر 'b' پرنٹف پرنٹنگ ('متغیر کی قیمت' c '' 'کو بطور رجسٹر قرار دیا گیا:٪ dn'، c) printf ('---- ---------------------------- ') main انٹین مین () {// آٹو اسٹوریج کلاس کا مظاہرہ کرنے کے لئے آٹو اسٹورکلاس () // مظاہرہ کرنا اسٹوریج کلاس رجسٹر کریں اسٹورجکلاس () واپسی 0}

آؤٹ پٹ:

آؤٹ پٹ - سی ++ میں ایڈوریکا میں اسٹوریج کلاسجامد اسٹوریج کلاس

جامد اسٹوریج کلاس اعلان کرنے کے لئے استعمال ہوتی ہے جامد متغیر . جامد متغیر ان کی قیمت (یعنی آخری قیمت) کو محفوظ رکھتے ہیں یہاں تک کہ جب وہ اپنے دائرہ کار سے باہر ہوں۔ جامد متغیرات کو صرف ایک بار شروع کیا جاتا ہے &پروگرام کے خاتمے تک موجود ہیں۔

میموری کو صرف ایک بار جامد متغیر کے لئے مختص کیا جاتا ہے اور کوئی نئی میموری مختص نہیں کی جاتی ہے کیونکہ انہیں دوبارہ اعلان نہیں کیا جاتا ہے۔ پروگرام میں کہیں بھی عالمی جامد متغیر تک رسائی حاصل کی جاسکتی ہے۔ پہلے سے طے شدہ طور پر ، ان کو مرتب کرنے والے کے ذریعہ 0 کی قیمت تفویض کی جاتی ہے۔

C ++ میں ، جب کلاس ڈیٹا ممبر پر جامد استعمال ہوتا ہے تو ، اس کی وجہ سے اس ممبر کی صرف ایک کاپی اس کے کلاس کے تمام آئٹمز کے ساتھ شیئر ہوتی ہے۔

نحو:

جامد ڈیٹا ٹائپ var_name1 [= قدر]

مثال:

ابتدائی پی ڈی ایف کے لئے انفارمیٹیکا سبق
# شامل کریں باطل فعل (باطل) جامد INT c = 5 // عالمی جامد متغیر مین () {جبکہ (c--) {فنکشن ()} واپسی 0} باطل فعل (باطل) {جامد INT = 2 cnt ++ std :: cout<< 'cnt is ' << cnt std::cout << ' and c is ' << c << std::endl } 

آؤٹ پٹ:

بیرونی اسٹوریج کلاس

بیرونی اسٹوریج کلاس کی ضرورت ہوتی ہے جب متغیرات کو متعدد فائلوں میں بانٹنے کی ضرورت ہو۔ بیرونی متغیروں کا عالمی دائرہ کار ہے اور یہ متغیرات اس فائل کے باہر نظر آتے ہیں جس میں ان کا اعلان کیا جاتا ہے۔ بیرونی متغیر تمام پروگراموں کے لئے مرئی ہے۔ اگر دو یا دو سے زیادہ فائلیں ایک ہی متغیر یا فنکشن کا اشتراک کر رہی ہوں تو یہ استعمال کیا جاتا ہے۔

بیرونی متغیر کی زندگی اس وقت تک ہے جب تک کہ جس پروگرام میں اس کا اعلان کیا جاتا ہے اسے ختم کردیا جاتا ہے۔ کسی بھی فنکشن / بلاک میں اس کے اعلان / تعریف سے پہلے ’بیرونی‘ کی ورڈ رکھ کر ایک عام عالمی متغیر کو بھی بیرونی بنایا جاسکتا ہے۔

جب آپ ’بیرونی‘ استعمال کرتے ہیں تو متغیر کی ابتدا نہیں کی جاسکتی ہے کیونکہ یہ سب اسٹوریج کے مقام پر متغیر نام کی نشاندہی کرتے ہیں جس کی پہلے وضاحت کی گئی ہے۔

نحو

بیرونی ڈیٹا کی قسم var_name1

مثال

# INT شامل کریں CNT بیرونی باطل تحریری_یعقدہ () اہم () nt cnt = 5 Writ_extern ()}

دوسری فائل: support.cpp

# خارجی INT شامل کریں cnt باطل تحریری_یشترن (باطل) d std :: cout<< 'Count is ' << cnt << std::endl } 

یہاں ، خارجی مطلوبہ الفاظ کا استعمال کسی اور فائل میں cnt کے اعلان کرنے کے لئے کیا جارہا ہے۔ اب ان دو فائلوں کو مندرجہ ذیل اور منفی کے مطابق مرتب کریں

write g ++ main.cpp support.cpp -o لکھیں

اس سے تحریری عمل میں لانے والا پروگرام تیار ہوگا ، لکھنے پر عملدرآمد کرنے کی کوشش کریں اور نتیجہ کو مندرجہ ذیل اور مائنس کے مطابق چیک کریں

$. / لکھنا

5

C ++ میں اسٹوریج کلاس کے ساتھ آگے بڑھنے پر ، آئیے ایک آخری نظر ڈالیں ، یعنی متغیر اسٹوریج کلاس۔

تغیر پزیر اسٹوریج کلاس

تغیر پذیر تفصیلات صرف طبقاتی اشیاء پر لاگو ہوتی ہیں ، جو کسی شے کے ممبر کو کانسٹ ممبر فنکشن کو اوور رائڈ کرنے کی سہولت دیتی ہے۔ یعنی ، ایک تغیر پزیر ممبر کو کانسٹ ممبر فنکشن کے ذریعہ تبدیل کیا جاسکتا ہے۔

آخر میں ، ذرا اسٹوریج کی مختلف کلاسوں کے مابین فرق کو سمجھنے کے لئے موازنہ کی میز پر نظر ڈالیں۔

اسٹوریج کلاس

مطلوبہ الفاظ

زندگی بھر

مرئیت

ابتدائی قیمت

خودکار

آٹو

فنکشن بلاک

مقامی

ردی کی ٹوکری

بیرونی

بیرونی

پورا پروگرام

عالمی

زیرو

جامد

جامد

پورا پروگرام

مقامی

زیرو

رجسٹر کریں

رجسٹر کریں

فنکشن بلاک

مقامی

ردی کی ٹوکری

تغیر پزیر

بدلنے والا

کلاس

جاوا اسکرپٹ کا استعمال کرتے ہوئے HTML میں پیشرفت بار

مقامی

ردی کی ٹوکری

اب مذکورہ بالا C ++ پروگراموں میں گزرنے کے بعد ، آپ کو سمجھ آ گئی ہوگی کہ C ++ میں اسٹوریج کی کونسی مختلف کلاسیں ہیں اور ان کو کیسے نافذ کیا جائے۔ مجھے امید ہے کہ یہ بلاگ آپ کے لئے معلوماتی اور قابل قدر ہے۔

اس طرح ہم ‘C ++ میں اسٹوریج کلاسز’ کے بارے میں اس مضمون کے اختتام کو پہنچ چکے ہیں۔

اگر آپ مزید جاننا چاہتے ہیں تو ، چیک کریں ایڈورکا ، جو ایک قابل اعتماد آن لائن سیکھنے کی کمپنی ہے۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس آپ کو ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی تصورات کی تربیت کے لئے ڈیزائن کیا گیا ہے۔

ہمارے لئے ایک سوال ہے؟ برائے کرم اس بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد سے جلد آپ کے پاس مل جائیں گے۔