خوراک پی سی کدنویس

ورود کاربران

آمار سایت

اعضا : 431
محتوا : 74
پیوندها : 6
بازدیدهای محتوا : 245400

حاضرین در سایت

 150 مهمان حاضر

برای نمایش بهتر سایت، از مرورگر استاندارد فایرفاکس استفاده کنید! مرورگر اینترنت اکسپلورر متعلق به دهه گذشته است!

firefox icon

Valid XHTML 1.0 Transitional Valid CSS!

کلاسها در C++: بخش اول مقدمه‌ای بر شیءگرایی

9 امتیاز
مهمترین ویژگی C++ در مقایسه با زبان C خاصیت شیءگرایی است. زبان C یک زبان ساختار یافته است که در آن می‌توان با استفاده از توابع در کنار متغیرهای محلی و سراسری، ساختار برنامه را شکل داد. هر چند با این روش می‌توان تقریبا هر برنامه‌ای را نوشت، لیکن در این روش به دلیل برقرار نبودن ارتباط منطقی بین کد (توابع) و داده‌ها (متغیرها)، مدیریت برنامه‌های کلان با دشواری روبه‌رو می‌شود. برای روشن شدن ارتباط کد و داده، مثالی بزنیم: یک رشته در زبان C به صورت آرایه‌ای از حروف تعریف می‌شود، و اگر بخواهیم طول آن را به دست آوریم باید تابعی مثل strlen را فراخوانی کنیم که رشته را به صورت یک پارامتر ورودی می-گیرد. در اینجا ارتباط تابع strlen و داده‌ی رشته از طریق پارامتر برقرار می‌شود وگرنه strlen به خودی خود، هیچ خبری از تعریف شدن رشته ندارد...

حال اگر رشته‌ی مذکور خودش بتواند طول خود را محاسبه کند، چه اتفاقی می‌افتد! در این حالت رشته هم از داده‌ی خودش خبر دارد و هم تابعی به صورت داخلی دارد که می‌تواند طول خودش را حساب کند. می-گوییم کد (تابع محاسبه طول رشته) و داده‌ (رشته) با هم مجتمع شده‌اند. این کار هم فرایند برنامه نویسی را تسهیل می‌کند و هم خوانایی برنامه را افزایش می‌دهد. طول، یک خاصیت رشته است و خیلی مناسب است که هر رشته‌ای از طول خودش خبر داشته باشد (همان طور که ما از قد و وزن خودمان خبر داریم!).
برای مدلسازی اشیاء واقعی و مصنوعی، ما به چیزی بیش از توابع و متغیرها نیاز داریم و باید مفهوم جدیدی به زبان اضافه کنیم. شیء عبارت است از چیزی که دارای یک سری خواص و یک سری قابلیتهاست. لذا این مفهوم جدید باید بتواند خواص و قابلیتهای اشیاء را مدل کند. کلاس، همان مفهوم جدیدی است که برای این منظور ابداع شده است. کلاس برای مدل سازی خواص اشیاء، از متغیرها و برای مدلسازی قابلیتها، از توابع استفاده می‌کند. دقت کنید که کلاس یک مفهوم است که به گستره‌ی وسیعی از اشیاء اطلاق می‌شود؛ مثلا وقتی می‌گوییم کلاس کتاب، به هر کتابی اعم از ریاضی، فیزیک، شیمی و ... اطلاق می‌شود و در واقع تک تک این کتابها اشیائی از کلاس کتاب هستند. همین طور وقتی در مورد کلاس دوچرخه صحبت می‌کنیم شامل دوچرخه‌ی حسن، دوچرخه‌ی علی و هر دوچرخه‌ی دیگری می‌شود. در یک کلام، شیء مصداقی است از یک کلاس.
کلاس یک مفهوم انتزاعی است و شیء مصداقی است از یک کلاس
برای تقریب بیشتر به ذهن یک مثال برنامه نویسی بزنیم: کلاس ساده‌ای مثل مستطیل، چهار خاصیت دارد، مختصات بالا، پایین، چپ و راست. برای نگهداری این خواص می‌توانیم چهار متغیر صحیح در این کلاس تعریف کنیم. حال اگر بخواهیم مستطیل مذکور قابلیت محاسبه طول، عرض و مساحت خود را داشته باشد، کافیست توابع مناسبی مثل Width()، Height() و Area() برایش تعریف کنیم که بر اساس خواص چهارگانه-اش، آنها را حساب کند.
  • NARGES
    avatar
    با سلام و تشكر،دوتا سوال دارم خواهش ميكنم جواب بديد
    رابطه بين امنيت و وسعت برنامه در C++چگونه است؟
    آيا حساسيت به حروف در سي پلاس خوب است يا بد؟
    اگر ممكن است جواب را به ايميلم ارسال كنيد
  • mina  - سوال
    avatar
    ببخشدپید میخواستم در مورد ارپنواع روابط part of اگه چیزی می دونین واسم توضیح بدین.باتشکر
  • دوستار شما  - !؟!
    avatar
    سلام. خسته نباشین. واقعا کارتون حرف نداره. اجرتون با خدا.
    میخوام یه سوال ب÷رسم که ربطی به این تاپیک نداره.
    اگه میشه توضیحی در مورد خوراک سایت بدین و بگین به چه دردی میخوره و چه جوری میشه از اون استفاده کرد؟
    بازم ممنونم. <img src=illy:' title=':silly:' class='postemoticon' />
  • مدیر سایت
    avatar
    خوراک سایت برای ردگیری مقالات سایت بدون ورود به سایت مناسب است.
    مثلا به کمک Google Reader می توانید خوراک سایتها را دنبال کنید.
  • دوستدار شما
    avatar
    اگه ممکنه به سایت www.picpars.com یه سری بزنید. به نظرتون مطالبش خوبه
  • ابوذر
    avatar
    مرسی
    ولی اگه وقت کردین بیشتر در این مورد بنویسین
    و اگه نوشتین به منم خبر بدین تا دنبال کنم

    بازم ممنون بسیار مفید بود
اظهار نظر
مشخصات شما:
گراواتار enabled
نظر:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):s:!::?::idea::arrow:
امنیت
کد آنتی اسپم نمایش داده شده در عکس را وارد کنید.