رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران
  • 0
GornerLabo

تعریف نوع شمارشی enum بدون نام!


سوال

سلام. آیا میشه در کلاسی چندین enum بدون نام تعریف کرد؟ هدف تعریف چند نوع enum پشت سرهم در کلاس چیه و به چه نحوی میشه ازشون استفاده کرد؟

مثلا:

enum
{
one,
two,
three

};

enum
{
tehran,
karaj,
yazd
};

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

1 پاسخ به این سوال تا کنون داده شده است

پست های پیشنهاد شده

  • 1

 

در 16 ساعت قبل، GornerLabo گفته است :

آیا میشه در کلاسی چندین enum بدون نام تعریف کرد؟

بله می توانید تعریف کنید وقتی نوع شمارشی بدون نام در یک کلاس ویا یک استراکچر می سازید در صورتی که حوزه دسترسی این نوع شمارشی عمومی تعریف شده باشه می توانید به صورت ثابت های عضو عمومی کلاس بهشون دسترسی پیدا کنید.

#ifndef TESTENUM_H
#define TESTENUM_H


class testEnum
{
    public:
        testEnum();
        virtual ~testEnum();
        enum { a, b, c = 0, d = a + 2 };
        enum { z, e, g = 0, f = z + 2 };


    protected:

    private:
};

#endif // TESTENUM_H
    testEnum t1;
    cout << t1.d << endl;

و اگر هم برای داده شمارشی نام تعریف کنید به این صورت هم میتوانید استفاده کنید

#ifndef TESTENUM_H
#define TESTENUM_H


class testEnum
{
    public:
        testEnum();
        virtual ~testEnum();
        enum T1 { a, b, c = 0, d = a + 2 };
        enum T2 { z, e, g = 0, f = z + 2 };


    protected:

    private:
};

#endif // TESTENUM_H

testEnum t1;
cout << t1.T1::a << endl;

 

در 16 ساعت قبل، GornerLabo گفته است :

هدف تعریف چند نوع enum پشت سرهم در کلاس چیه

این سوال هم خیلی کلی هست ولی معمولا تعریف داده شمارشی بدون نام خیلی مرسوم نیست یا حداقل من خودم که این کار را انجام نمیدهم اونهم به این علت که نگهداری برنامه و پیچیدگی را افزایش میده وقتی روش غیر استانداردی را برای یک نوع استاندارد به کار ببریم.

ولی در مجموع داده های شمارشی بر اساس ساختمانی که دارند هزینه نگهداری پایینتر و همچنین اتلاف حافظه کمتری نسبت به انواع ثابت ها را دارند.

  • پسندیدن 1
  • تشکر شده 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×