وبلاگ فروشگاه فایل پی استور

وبلاگ فروشگاه فایل پی استور

ارائه دهنده فایل های آموزشی و کمک آموزشی
وبلاگ فروشگاه فایل پی استور

وبلاگ فروشگاه فایل پی استور

ارائه دهنده فایل های آموزشی و کمک آموزشی

نوع شمارشی enum در سی پلاس پلاس ++C

یک نوع شمارشی یک نوع صحیح است که توسط کاربر  مشخص می‌شود. نحو تعریف یک نوع شمارشی به شکل زیر است:

{enum typename{enumerator-list

که enum کلمه‌ای کلیدی است، typename نام نوع جدید است که کاربر مشخص می‌کند و enumerator-list مجموعه مقادیری است که این نوع جدید می‌تواند داشته باشد. 

به عنوان مثال به تعریف زیر دقت کنید:

{enum Day{SAT,SUN,MON,TUE,WED,THU,FRI

حالا Day یک نوع جدید است و متغیرهایی که از این نوع تعریف می‌شوند می‌توانند یکی از مقادیر SAT و SUN و MON و TUE و WED و THU و FRI را داشته باشند.

;Day day1,day2
;day1 = MON
;day2 = THU

وقتی نوع جدید Day و محدودۀ مقادیرش را تعیین کردیم، می‌توانیم متغیرهایی از این نوع جدید بسازیم. در کد بالا متغیرهای day1 و day2 از نوع Day تعریف شده‌اند. آنگاه day1 با مقدار MON و day2 با مقدار THU مقداردهی شده است.

مقادیر SAT و SUN و  ...  هر چند که به همین شکل به کار می‌روند اما در کامپیوتر به شکل اعداد صحیح 0 و 1 و 2 و ...  ذخیره می‌شوند. به همین دلیل است که به هر یک از مقادیر SAT و SUN و ...  یک شمارشگر می‌گویند. می‌توان مقادیر صحیح دلخواهی را به شمارشگرها نسبت داد:

{enum Day{SAT=1,SUN=2,MON=4,TUE=8,WED=16,THU=32,FRI=64

اگر فقط بعضی از شمارشگرها مقداردهی شوند، آنگاه سایر شمارشگرها که مقداردهی نشده‌اند مقادیر متوالی بعدی را خواهند گرفت:

{enum Day{SAT=1,SUN,MON,TUE,WED,THU,FRI

دستور بالا مقادیر 1 تا 7 را به ترتیب به روزهای هفته تخصیص خواهد داد.  همچنین دو یا چند شمارشگر در یک فهرست می‌توانند مقادیر یکسانی داشته باشند:

{enum Answer{NO=0,FALSE=0,YES=1,TRUE=1,OK=1

آخر این که نام شمارشگرها نباید به عنوان نام متغیرهای دیگر در جاهای دیگر برنامه استفاده شود. مثلا:


{enum Score{A,B,C,D
;float B
;char c

در تعریف‌های بالا B و C را نباید به عنوان نام متغیرهای دیگر به کار برد زیرا این نام‌ها در نوع شمارشی Score به کار رفته است.  شمارشگرهای هم‌نام نباید در محدوده‌های مشترک استفاده شوند. برای مثال تعریف‌های زیر را در نظر بگیرید:


{enum Score{A,B,C,D
{enum Group{AB,B,BC

دو تعریف بالا غیرمجاز است زیرا شمارشگر B در هر دو تعریف Score و Group آمده است. انواع شمارشی برای تولید کد «خود مستند» به کار می‌روند، یعنی کدی که به راحتی درک شود و نیاز به توضیحات اضافی نداشته باشد. مثلا تعاریف زیر خودمستند هستند زیرا به راحتی نام و نوع کاربرد و محدودۀ مقادیرشان درک می‌شود:

{enum Color{RED,GREEN,BLUE,BLACK,ORANGE
{enum Time{SECOND,MINUTE,HOUR
{enum Date{DAY,MONTH,YEAR
{enum Language{C,DELPHI,JAVA,PERL
{enum Gender{MALE,FEMALE

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.