PDA

View Full Version : سوال: تابع static



alimh123
شنبه 30 شهریور 1387, 13:55 عصر
سلام
می خواستم بدونم از توابع static در چه مواردی استفاده میشه؟
ممنون

Blackk_lightt
شنبه 30 شهریور 1387, 14:33 عصر
سلام
خاصیت توابع Static در ینه که شما میتونی بدونه مدل سازی از یه کلاس از توابع استاتیک اون استفاده کنی
و یه چیز دیگه اینکه این توابع نمیتونند به اعضاء غیر استاتیک کلاس دسترسی داشته باشند
موفق باشی

alimh123
شنبه 30 شهریور 1387, 16:26 عصر
سلام
خاصیت توابع Static در ینه که شما میتونی بدونه مدل سازی از یه کلاس از توابع استاتیک اون استفاده کنی
و یه چیز دیگه اینکه این توابع نمیتونند به اعضاء غیر استاتیک کلاس دسترسی داشته باشند
موفق باشی


آیا این کار درسته که ما برای دسترسی به یک تابع Form1 از درون Form2 ، اون تابع رو داخل Form1 بصورت static بنویسیم؟
انشاالله که تونسته باشم منظورم رو برسونم!
ممنون

Salar Ashgi
شنبه 30 شهریور 1387, 16:40 عصر
سلام ، در مبحث شي گرايي (OOP) ، اينطوريه كه ، وقتي شي اي از يك كلاس ايجاد

مي كنيم ، يك كپي از اعضاي داده اي (Data Members ) و يك كپي از توابع

(Member Function ) وجود داره !!! حال اگه شما 100 تا شي هم از اين كلاس ايجاد كنيد ،

براي همشون كپي از اعضاي داده اي وجود داره ، ولي از توابع عضو فقط يك كپي ايجاد ميشه

و همه اين 100 تا شي از اون يك كپي استفاده مي كنند !!! حال اگه بخواهيد براي اعضاي

داده اي هم همين وضيعت پيش بياد ، بايد اونا رو Static تعريف كنيد ، كه توابع استاتيك

چنين اعضاي داده اي رو مقدار دهي ميكنند !!!!

alimh123
شنبه 30 شهریور 1387, 16:53 عصر
سلام ، در مبحث شي گرايي (OOP) ، اينطوريه كه ، وقتي شي اي از يك كلاس ايجاد

مي كنيم ، يك كپي از اعضاي داده اي (Data Members ) و يك كپي از توابع

(Member Function ) وجود داره !!! حال اگه شما 100 تا شي هم از اين كلاس ايجاد كنيد ،

براي همشون كپي از اعضاي داده اي وجود داره ، ولي از توابع عضو فقط يك كپي ايجاد ميشه

و همه اين 100 تا شي از اون يك كپي استفاده مي كنند !!! حال اگه بخواهيد براي اعضاي

داده اي هم همين وضيعت پيش بياد ، بايد اونا رو Static تعريف كنيد ، كه توابع استاتيك

چنين اعضاي داده اي رو مقدار دهي ميكنند !!!!

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

SMRAH1
شنبه 30 شهریور 1387, 17:47 عصر
اگر تابع فرم اول (که می خواهید توسط فرم دوم فرخوانی شود) نیاز به داده هایی دارد که وابسته به فرم اول اند (از هر شی ساخته شده از فرم اول به شی دیگری از این فرم متفاوتند)،نمی تونید این کار رو بکنید.در این حالت بهتره یک دسترسی از فرم اول را به فرم دوم (در هنگام ساخت و اجرای رفم دوم) پاس بدهید و از این دست اندازی برای اجرای اون تابع استفاده کنید.
توابع استاتیک فقط برای زمانی به کار می ره که تابع مستقل از اشای ساخته شده باشد.