PDA

View Full Version : سوال: سوال در مورد Scope متغیرها



manager
سه شنبه 30 مهر 1387, 20:15 عصر
سلام

سوال اول : با توجه به اینکه هنگام استفاده از متغیرهای از نوع ارجاعی l-value شیئ داده به آرگومان زیر برنامه کپی می شود آیا باز می توان گفت که Scope متغیر های از نوع ارجاعی محدود به زیر برنامه است یا می توان گفت فراتر از زیر برنامه است ؟

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

سوال سوم : منظور از انقیاد پویا و انقیاد ایستا چیه ؟

rainstorm
چهارشنبه 01 آبان 1387, 09:30 صبح
سوال سوم : منظور از انقیاد پویا و انقیاد ایستا چیه ؟

منظور از انقياد (Binding) مقيد كردن يك شي يا متغير به يك مقدار خاص
حالا منظور از انقياد پويا، انقياد در زمان اجراي برنامه و هر دفعه است و منظور از ايستا در زمان ترجمه و فقط يك بار

manager
پنج شنبه 02 آبان 1387, 07:41 صبح
منظور از انقياد (Binding) مقيد كردن يك شي يا متغير به يك مقدار خاص
حالا منظور از انقياد پويا، انقياد در زمان اجراي برنامه و هر دفعه است و منظور از ايستا در زمان ترجمه و فقط يك بار
بله درسته. سایت PC Magazine، هم به همین مطلب اشاره کرده و گفته که Dynamic Binding همون Late Binding هست و Static Binding هم همون Early Binding هست. ولی Wikipedia این مقوله رو در بحث شیئ گرائی تعریف کرده و گفته که "در شیئ گرائی، تشخیص دقیق پیاده سازی یک درخواست بر اساس دو مقوله نام عملیات و شیئ دریافتی در زمان اجرا Dynamic Binding نام دارد". که خود این Dynamic Binding دو نوع داره یکی Static ویکی هم Dynamic. جالبه در یکی از کتب معتبر داخلی که مولف آن استاد دانشگاه تهران هست انقیاد پویا رو به این صورت تعریف کرده : " انقیاد پویا این است که یک متغیر آزاد (سراسری) مقدارش را به جای اینکه از محیطی دریافت دارد که در آن تعریف می شود از محیطی دریافت می دارد که در آن فراخوانده می شود." و انقیاد ایستا رو هم دقیقا عکس این مطلب تعریف کردند.
گنگی این مطلب برای من آنجا ایجاد شد که انقیاد پویا و ایستا در کنار انواع انقیاد های زود هنگام و دیر هنگام قرار گرفته بود ( به عنوان یه دسته بندی جدا) و این من رو گیج کرده !!!

manager
جمعه 03 آبان 1387, 23:12 عصر
کتاب آقای پرت هم عنوان کرده که Dynamic Binding همون Late Binding هست و Static Binding هم همون Early Binding هست. ولی دو سوال اول من هنوز به قوت خودشون باقی هستند...