نمایش نتایج 1 تا 7 از 7

نام تاپیک: تعریف عضو کلاس با auto,extern,register

  1. #1
    کاربر جدید آواتار sia abedi
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    P30WORLD
    پست
    29

    چند تا سوال

    سلام بچه ها اميدوارم كه طاعات وعباداتتون مورد قبول حق تعالي قرار گرفته باشه.
    يه چند تا سوال برام پيش اومده البته همه‌ي اين سوال ها در مورد كتاب جعفرنژاده:
    1.در صفحه‌ي 159 بخش كلاس ها و اشياء:نوشته كه هيچ عضوي نمي‌تواند با كلاس حافظه‌ي auto,extern,register تعريف بشه.
    مگر ما نگفته بوديم كه اگر كلاس حافظه ذكر نشه به طور پيش فرض به طور autoتعريف ميشه پس چرا گفته كه با كلاس حافظه‌ي autoنميشه متغير تعريف كرد.
    علي الحساب اين را جواب بدي تا بقيه را بپرسم گفتم اگر همه را با هم بپرسم گيج مي‌شم
    آخرین ویرایش به وسیله sia abedi : دوشنبه 30 شهریور 1388 در 13:04 عصر

  2. #2

    نقل قول: تعریف عضو کلاس با auto,extern,register

    بحث تعریف متغیر در کلاس ها بحثی متفاوت هست، کلاس ها به خاطر ماهیت تخصیص حافظه خود، محدودیت هایی در تعریف متغیر دارند که یک نمونه آن همین مورد هست. نمونه دیگر عدم امکان مقدار دهی به متغیر ها هنگام تعریف هست (که البته قرار هست در استاندارد جدید امسال ++C به آن افزوده شود).

  3. #3
    کاربر جدید آواتار sia abedi
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    P30WORLD
    پست
    29

    نقل قول: تعریف عضو کلاس با auto,extern,register

    نقل قول نوشته شده توسط Nima_NF مشاهده تاپیک
    بحث تعریف متغیر در کلاس ها بحثی متفاوت هست، کلاس ها به خاطر ماهیت تخصیص حافظه خود، محدودیت هایی در تعریف متغیر دارند که یک نمونه آن همین مورد هست. نمونه دیگر عدم امکان مقدار دهی به متغیر ها هنگام تعریف هست (که البته قرار هست در استاندارد جدید امسال ++C به آن افزوده شود).
    يعني منظور شما اينه كه وقتي ما متغيري را در كلاس تعريف مي‌كنيم كلاس حافظه‌ي اون آتو نيست.پس اگر آتو نيست كلاس حافظه‌ي متغيري كه در كلاس تعريف ميشه چيه؟(براي اين اين سوال را مي‌كنم كه در توضيحات همين كتاب گفته بود كه هر متغيري كه كلاس حافظش ذكر نشه كلاسش آتو هست)

  4. #4

    نقل قول: تعریف عضو کلاس با auto,extern,register

    منظور این نیست که کلاس حافظه auto نیست، بلکه منظور این هست که شما نمی توانید از کلمه کلیدی auto استفاده کنید. (همه متغیر ها بدون extern و static و... به طور پیش فرض auto هستند)

    ضمنا آگاه باشید که در استاندارد جدید C++‎09 کلمه کلیدی auto به عنوان یک storage class specifier دیگر وجود ندارد و حذف خواهد شد، لذا در آینده نزدیک auto ماهیت و قابلیت جدیدی در C++‎ خواهد داشت.

  5. #5
    کاربر جدید آواتار sia abedi
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    P30WORLD
    پست
    29

    نقل قول: تعریف عضو کلاس با auto,extern,register

    نمي‌دونم براي چي اسم تاپيك اين در اومد آخه من مي‌خواستم اسمش را به بگذارم چند تا سوال به هر حال سوال دوم:
    در مورد مخرب هست.اول اين كه مي‌خواستم بدونم تابع مخرب را حتي اگر هم تعريف نكنيم وجود داره ديگه؟ويك سوال ديگه در مورد اين مبحث اينه كه تابع مخرب را ميشه وسط برنامه كال كرد؟ اگر ميشه چه جوري؟
    احساس مي‌كنم كه كتاب جعفر نژاد بعضي از مباحث را ناقص نوشه كسي لينك دانلود كتاب ترجمه شده‌ي دايتل&دايتل را نداره؟اصلا اين كتاب وجود داره؟ حالا خودم يك گشتي توي انجمن هم يك گشتي ميزنم.

  6. #6

    نقل قول: تعریف عضو کلاس با auto,extern,register

    نمي‌دونم براي چي اسم تاپيك اين در اومد آخه من مي‌خواستم اسمش را به بگذارم چند تا سوال
    کل این بخش برای پرسیدن سوالات مختلف ++C/C هست.
    طبق قوانین سایت باید یک سوال در تاپیک پرسید و عنوان مناسب نیز برای آن انتخاب کرد که مرتبط به همان سوال باشد.

    در مورد مخرب هست.اول اين كه مي‌خواستم بدونم تابع مخرب را حتي اگر هم تعريف نكنيم وجود داره ديگه؟
    بله، وجود دارد، اما شما سعی کنید همیشه خودتان یک نمونه بسازید تا موارد لازم را انجام دهید.


    ويك سوال ديگه در مورد اين مبحث اينه كه تابع مخرب را ميشه وسط برنامه كال كرد؟ اگر ميشه چه جوري؟
    مثل سایر توابع، البته به همراه ~ به این شکل:

    ClassA Aobj;

    Aobj.~ClassA();

  7. #7
    کاربر جدید
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اصفهان
    پست
    11

    نقل قول: تعریف عضو کلاس با auto,extern,register

    توصیه میشه همیشه تابع مخربو خودمون تعریف کنیم مثلاً در بحث ماتریس ها وقتی حافظه میگیریم تابع مخرب باید بعد اتمام کار حافظه ای رو که گرفته آزاد کنه.اگه ما مخرب نذاریم ممکنه یه جایی از برنامه دیگه حافظه برامون نمونه و برنامه از اجرا خارج بشه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •