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

جستجو در تالارهای گفتگو

در حال نمایش نتایج برای برچسب های 'declare static varaible'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


وبلاگ‌ها

چیزی برای نمایش وجود ندارد

چیزی برای نمایش وجود ندارد

تالارهای گفتگو

  • انجمن‌های آی او استریم
    • اخبار و اعلامیه‌های سایت
    • اسناد و قوانین مرجع
    • رویداد‌ها و جلسات
    • معرفی محصولات نوشته شده‌ بومی
    • مرکز نظرسنجی جامعه‌ی برنامه‌نویسان
    • مقالات و اسناد مشاوره‌ای
    • مرکز چالش برانگیز برنامه‌نویسان
    • رمز‌های موفقیت
    • ابزار‌ها و نرم‌افزارهای کاربردی برنامه‌نویسان حرفه‌ای
  • استارتاپی و کسب‌و‌کار
    • استارتاپ‌ها
    • سرمایه گذاری
    • شتاب دهنده‌ها
    • پارک‌های علم و فناوری و مراکز رشد
    • مصاحبه با استارت‌آپ‌ها
    • قوانین حقوقی
    • داستان‌های موفقیت
    • کارآفرینان و متخصصین
    • مشاوره اجرای کسب‌وکار
    • اخبار حوزه‌ی استارتا‌پی
    • آگهی‌های استخدامی
  • زبان‌های برنامه نویسی
    • برنامه نویسی در C و ‏++C
    • برنامه نویسی با Java
    • برنامه نویسی با JavaScript
    • برنامه نویسی با Go
    • برنامه نویسی با Python
    • برنامه نویسی با Delphi
    • برنامه نویسی با Ruby
    • برنامه نویسی با VB6
  • طراحی و توسعه وب
    • برنامه نویسی در PHP
    • برنامه نویسی با Node.JS
  • طراحی و توسعه وب اپلیکیشن‌ها
    • طراحی و توسعه در Angular
    • طراحی و توسعه در React.JS
    • طراحی و توسعه در Vue.JS
  • طراحی و توسعه موبایل و اِمبِد‌ها و تلوزیون‌ها
    • برنامه نویسی تحت محصولات اپل
    • برنامه نویسی تحت محصولات گوگل
    • طراحی و توسعه تحت محصولات دیگر
  • برنامه‌نویسی سطح پایین و سیستم عامل‌ها
    • سیستم عامل‌های آزاد
    • سیستم عامل‌های تجاری
    • مباحث آموزشی مرتبط با سیستم‌عامل
  • شبکه و اینترنت
    • مباحث و منابع آموزشي
    • سوالات و مشکلات
  • بانک‌های اطلاعاتی
  • برنامه نویسی تحت محصولات اپل
  • برنامه نویسی تحت محصولات مایکروسافت
  • طراحی و توسعه تجربه کاربری (UX) و رابط کاربری (UI)
  • درخواست انجام پروژه (ویژه)
  • سوالات و مباحث عامیانه
  • سطل آشغال

Product Groups

  • کتاب‌ها و مقالات آموزشی

دسته ها

  • علمی
  • استارتاپی
  • برنامه‌نویسی
    • زبان‌های برنامه نویسی
    • معماری‌ها
  • کامپایلر و مفسر
  • محیط‌های توسعه
  • پلتفرم‌های توسعه
  • مجوز‌های نرم‌افزاری
  • فناوری‌ها
    • پردازش تصویر
    • اینترنت اشیاء
    • پردازش ابری (Cloud Computing)
    • چند سکویی (Cross-Platform)
    • بیگ دیتا (Big Data)
    • هوش مصنوعی (AI)
    • سخت افزار
    • نرم‌افزار و اپلیکیشن
    • اینترنت و شبکه
    • رمزنگاری
    • امبد‌ها (Embedded)
  • طراحی
    • تجربه کاربری
    • رابط کاربری

دسته ها

  • عمومی
  • گرافیکی
  • شبکه و ارتباطات

دسته ها

  • کامپایلر‌ها
  • محیط‌های توسعه
  • کتابخانه‌ها
  • ماژول‌ها و پلاگین‌ها
  • محصولات بومی
  • کتاب‌ها و مقالات
  • زبان‌ها و ابزار‌ها
  • طراحی و گرافیک

جستجو در ...

نمایش نتایجی که شامل ...


تاریخ ایجاد

  • شروع

    پایان


آخرین بروزرسانی

  • شروع

    پایان


فیلتر بر اساس تعداد ...

تاریخ عضویت

  • شروع

    پایان


گروه


درباره من


شماره تلفن همراه


شناسه گیت‌هاب


شناسه لینکدین


شناسه پیام رسان


شهر


آدرس پستی

1 نتیجه پیدا شد

  1. با سلام همانطور که می دانید وقتی یک متغیر کلاس اتوماتیک را به صورت استاتیک در بدنه یک تابع تعریف میکنید و درصورتی که این تابع به صورت external تعریف شده باشه، قطعا با هر بار فراخوانی این تابع مقدار متغیر استاتیک فقط یکبار در اولین فراخوانی مقدار دهی خواهد شد و در فراخوانی های بعدی آخرین مقدار خود را حفظ خواهد کرد. بنابراین نکته ای که میتونه خیلی کاربردی باشه این هست که رفتار کامپایلر با متغیرهای استاتیک درون یک تابع template براساس آرگومان template تابع متفاوت خواهد بود، یعنی کامپایلر نوع استاتیک را براساس نوع آرگومان تابع template تعیین میکند و در section .rodata چندین نگارش از متغیر استاتیک را می نویسد، پس نتیج میگیرم که متغیرهای استاتیکی که در بدنه یک تابع template تعریف شده اند برای تابع یکتا نیستند و مقادیر مختلفی برای تابع ساخته شده است. به همین علت در زمان استفاده از یک تابع template و متغیرهای استاتیک حتما به نوع آرگومان ارسالی به تابع دقت داشته باشید که نوع استاتیک تعریف شده در بدنه تابع میتواند مقادیر مختلفی را به شما نشان دهد و به همین سادگی گرفتار یکی از باگهای منطقی در زمان اجرا شوید. با توضیحاتی که ارائه شد به مثال زیر توجه کنید... template <typename T> void ef1() { static int stat = 0; std::cout << stat++; }; و اگر من دستورات زیر را فراخوانی کنم... ef1<int>(); ef1<int>(); ef1<int>(); با اجرای کد بالا قطعا مقادیر خروجی 012 را خواهم داشت. ولی اگر از دستورات زیر استفاده کنم... ef1<int*>(); ef1<int*>(); شاید انتظار داشتید که خروجی برنامه بعد از اجرای دستورات بالا مقدار 34 را نمایش میداد ولی خیر خروجی برنامه 01 خواهد بود. ویا اگر... ef1<int&>(); ef1<int&>(); بازهم خروجی 01 خواهد بود. ویا حتی اگر... ef1<const int>(); ef1<const int>(); وبازهم خروجی 01 خواهد بود. پس حتما در زمان طراحی شی گرائی و چند ریختی در زمان اجرا در هنگام تعریف کلاسها ویا توابعی که به صورت الگو هستند، اگر از نوع استاتیک استفاده میکنید دقت لازم را داشته باشید. البته یک نکته ای که زبانی سی++ را از سایر زبانها متمایز میکند، همین تکنیک هست که به لطف وجود همچنین تکنیکی شما امکان طراحی یک کلاس template که به صورت singletone باشد را خواهید داشت، یعنی کلاسی که برای انواع آبجکتهای شما یک رفرنس یکتا ایجاد کند تا مجبور نباشید که برای هر آبجکتی که قصد استفاده از الگوی singletone را برایش داشتید جداگانه یک کلاس بنویسید. به همین علت هست که زبانهای مثل جاوا ویا سی شارپ امکان ایجاد یک کلاس ژنریک سینگلتون را ندارند.! (البته در زبان سی شارپ می توان کلاس ژنریک سینگلتون تعرف کرد ولی به علت قوانین مدیریت حافظه ای که در سی شارپ وجود دارد، نمی توان تضمین کرد که یک کلاس ژنریک سینگلتون واقعا به یک کپی اشاره داشته باشد.)
×
×
  • جدید...