ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

کلاس ( class )

 
Post new topic   This topic is locked: you cannot edit posts or make replies.    ParsX.com Forum Index -> C/C++ Programming
View previous topic :: View next topic  
Author Message
arash
مدير بخش سي
مدير بخش سي


Joined: 27 Nov 2004
Posts: 1232
Location: www.parsx.com

PostPosted: Mon Feb 13, 2006 8:33 am    Post subject: کلاس ( class ) Reply with quote

در صورتی که سوالی در مورد کلاس داشته باشید به لینک زیر مراجع کنید :
سوال در مورد کلاس ( class )
کلاس ها باعث راحت تر شدن کار با انواع مختلف داده و کم کردن خطاهای احتمالی در برنامه می شود. در واقع کلاس ها برای کلاسه کردن قسمت های مربوط به هم و ساخت یک قالب برای آن استفاده می شوند. برنامه که با کلاس نوشته می شود قابل حمل تر می باشد یعنی برای کامپایل کد برنامه روی کامپیوتر های با طرز کار متفاوت ، که می توانند نوع داده متفاوتی نیز داشته باشند امکانات بهتری را فراهم می کند . کلاس ها در برنامه های مختلفی از جمله سری بعد از ++C مثل VC و ++VC و ... و همچنین برنامه هایی مثل VB و یا VB.NET استفاده می شوند که ساختار مشابه کلاس ++C ولی با دستورات ( syntax) متفاوت وجود دارد و یادگیری آن می تواند به فهم بهتر این نوع برنامه ها کمک شایانی توجه ای کند.
به طور کلی هر کلاس شامل دو جز اصلی می باشد .
اولا شامل properties یا خواص و یا همان متغییر ها و
ثانیا شامل یکسری methods یا اعمال و یا تابع ( Function ) یا رویه ( procedure )هستند.
تعریف کلاس به تنهایی هیچ نتیجه ندارد ، در واقع تا زمانی که متغییری از نوع کلاس تعریف نکنید هیچ حافظه ای برای آن اخذ نمی شود و از این لحاظ بسیار شبیه به ساختمان ( structure ) می باشند . شی متغییری از نوع کلاس می باشد. پس هر شی دارای یک کلاس مخصوص به خود می باشد و نیز یک مقدار مشخص از حافظه را اشغال می کند.
برای درک بهتر کلاس ها مثالی می زنم. هر شخص دارای خواصی ( متغییر هایی ) مانند قد ، وزن ، سن و ... می باشد. همچنین دارای متدهایی ( اعمال یا توابعی ) مانند راه رفتن دویدن نگاه کردن و ... می باشد .پس قد وزن و سن جزو خواص فرد و راه رفتن خوابیدن جزو متدهای فرد هستند. و یک نمونه از این کلاس انسان مثلا من یک شی از نوع این کلاس هستم.

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

چند ریختی :
به این مفهوم می باشد که شما دو تابع با کارکرد های متفاوت را با یک نام تعریف کنید. ولی کامپالر در هر زمان می داند منظور شما کدام تابع است. و این بدین خاطر است که نوع ورودی و یا تعداد ورودی این دو تابع با هم یکسان نیست.
برای مثال شما دو تابع search تعریف کرده اید که اولی یک کاراکتر را در یک رشته جستجو می کند و شماره اندیس وقوع آن کاراکتر را بر می گرداند. و همچنین یک تابع search تعریف کرده اید که یک رشته را در یک رشته دیگر جستجو کرده و شماره اندیس وقوع آن را بر می گرداند.برای این کار به جای دوبار تعریف کردن تابع search از خاصیت چند ریختی کلاس استفاده می کنید.

وراثت:
در جهان واقعی تمام اشیا از شی دیگری به ارث می رسند. مثلا یک فرزند خصوصیاتی ظاهری خود را از پدر و مادر خود به ارث می برد. در این جا نیز یک کلاس می تواند از کلاس دیگری به ارث برسد.در این صورت یک کلاس پدر و کلاس فرزند خواهیم داشت . دو نوع وراثت داریم یکی آنکه کلاس فرزند هیچ گونه دسترسی به متغییرها کلاس فرزند ندارد مگر به
Back to top
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies.    ParsX.com Forum Index -> C/C++ Programming All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum