سطح دسترسی متغیر ها (مبانی برنامه نویسی)
سلام خدمت همه ی دوستان و علاقمندان zero to hero
تو این مقاله سعی داریم مفهوم سطح دسترسی متغیر ها رو بهتون معرفی کنیم، و این کارو با استفاده از مثال همیشگیمون که از اولین مقاله تا بحال همراهمون بوده، یعنی مثال میز و نجار انجام میدیم. طبق مثالی که تو مقاله مفهوم تابع داشتیم، فرض کنید می خواید یه میز چوبی به یه نجار سفارش بدید و اون نجار هر قسمت از کار ساخت میز رو به یکی از شاگرداش که تو اون زمینه تخصص داره میسپاره. زمانی که شما اطلاعات ورودی مساله اعم از ابعاد، شکل و رنگ میز رو به نجار میدید اون نجار اطلاعات رو توی دفترچه ی خودش می نویسه و زمانی که می خواد یک قسمت از کار رو به یه شاگردش محول کنه، اطلاعات مورد نیاز اون شاگرد رو بهش میگه و اون شاگرد اطلاعات رو توی دفترچه ی خودش مینویسه و شروع به کار می کنه. و برای هر شاگرد این روند تکرار میشه.
اما حالا فرض کنید که نجار بجای این کار از این روند استفاده کنه: به جای دفترچه از یه تخته (سیاه یا سفید) بزرگ استفاده کنه و اطلاعات مورد نیاز کل میز رو روی اون بنویسه و زمانی که می خواد هر قسمت از کار رو به یکی از شاگرداش محول کنه، بهش میگه اطلاعات مورد نیازش رو از روی تخته ببینه. خوبی که این حالت داره اینه که اطلاعات دوبار یا چند بار نوشته نمیشن. اما مشکلی که داره اینه که ممکنه اطلاعاتی که مورد نیاز یکی از شاگرد ها هم نیست در اختیارش قرار بگیره.
در واقع در برنامه نویسی هم به همین صورت هست. برای استفاده از توابع ما می تونیم از دو نوع متغیر های عمومی و اختصاصی استفاده کنیم. متغیر های با سطح دسترسی اختصاصی مثل همون دفترچه ها و متغیر های با سطح دسترسی عمومی دقیقا مثل تخته هستن. اگر یک متغیر رو به صورت عمومی تعریف کنیم، تمامی توابع موجود در برنامه به اون دسترسی خواهند داشت و می تونن اونو تغییر بدن، اما اگر یک متغیر به صورت اختصاصی تعریف بشه، تنها در همون بلاکی که توش تعریف شده قابل دسترسیه. برای تعریف متغیر های عمومی می تونیم اون متغیر رو بیرون و قبل از تمام توابع برنامه معرفی کنیم. برای مثال اگر بخوایم کد مثال پست قبلی رو با متغیر های عمومی بنویسیم به این صورت خواهد بود:
#include<iostream> using namespace std; int x; int y; int zarb(){ int c; c = x * y; return c; } int main(){ int z; cin >> x; cin >> y; z = zarb(); cout << z << endl; return 0; }
که با توجه به خروجی کاملا درست عمل می کنه:
منتظر مقاله های بعدی مبانی برنامه نویسی و الگوریتم ها باشید.
قهرمان دنیای خودت باش!
مطالب زیر را حتما مطالعه کنید
حسگرها و فناوریهای پوشیدنی و کاربردهای آنها در پزشکی
آشنایی با نمودار رابطهای (ER)
درخت دودویی
ساختمان داده درخت
مدار منطقی – گیت های منطقی
مدار منطقی-جبر بول
2 Comments
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
بابت مقالات مبانی برنامه نویسیتون واقعا ممنونم
خیلی بم کمک کردین
خواهش می کنم…
امیدوارم که تا پایان این سری مقالات همین طور باشه…