استفاده از this در class

سلام!

در جلسه قبلی با مباحث بسیار پایه ای class آشنا شدید. حال این جلسه می خواهیم یکی از مباحث پایه ای (ولی کاربردی) در class یعنی this بپردازیم.

this چیست؟ هر object ای که از یک class می سازیم، یک اشاره گر در خود دارد که آدرس آن، آدرس همان object است. اسم این اشاره گر this است. برای این که با کاربردهای این اشاره گر آشنا شوید، به پاسخ سوال سوم سری قبلی تمرین ها توجه کنید.

۱ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

پاسخ تمرین های سری قبل

سلام!

می توانید پاسخ تمرین های سری قبل را در ادامه مشاهده کنید.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

برنامه نویسی شی گرا (object oriented)

سلام

در این جلسه به طور پایه ای به مبحث برنامه نویسی شی گرا یا object oriented programming می پردازیم.

فرض کنید که در حال نوشتن بازی ای هستید که قرار است در یک شهر اتفاق بیافتد. هر شهری ماشین، ساختمان،‌ آدم و... دارد. دو راه برای نوشتن این بازی دارید؛ راه اول، راهی است که تا الآن با آن آشنا شده اید. تعریف یک آرایه از قد آدم ها، وزن آدم ها، نوع پوشش آدم ها، ارتفاع ساختمان ها، رنگ ساختمان ها، حداکثر سرعت ماشین ها، رنگ ماشین ها و توابع مربوط به این خصوصیات.

راه دومی هم وجود دارد که بسیار ساده تر است. شما می توانید مفهومی به نام آدم درست کنید و در همان مفهوم توابع مربوط به آدم را نیز درست کنید. سپس برای ساخت یک آدم تنها بنویسید:

Adam a;

در واقع شما یک «شی» به نام آدم درست کرده اید. استفاده از این مفهوم را برنامه نویسی شی گرا می نامند.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

پاسخ تمرین های سری قبل

سلام!

در این پست، پاسخ تمرین های سری قبل قرار داده شده است.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

استفاده از تابع به عنوان ورودی یک تابع دیگر (pointer to function)

سلام!

در این جلسه قرار است به یک مبحث بسیار کاربردی بپردازیم. فرض کنید که به شما گفته اند که دو تابع مرتب سازی بنویسید؛ یک تابع یک آرایه از int به عنوان ورودی بگیرد و به صورت صعودی مرتب کند و تابع دیگر یک آرایه از int گرفته و آن را به صورت نزولی مرتب کند. کار بهتر این است که شما یک تابع بنویسید که یک تابع (برای تشخیص وضعیت اعداد نسبت به یک دیگر) را نیز به عنوان ورودی بگیرد و سپس آن را بر اساس آن تابع مرتب کند.

برای این که منظورم را بهتر متوجه شوید، بهتر است ابتدا با روش استفاده از یک تابع به عنوان ورودی یک تابع دیگر آشنا شوید، برای این کار می نویسیم:

void NAME(OUTPUT_TYPE (*NAME) (INPUTS) );

مثلا اگر بخواهید به تابعی به نام sort، تابعی ورودی بدهید که نام آن در تابع sort مثلا compare باشد باید بنویسید:

void sort( bool (*compare) (int a, int b) );

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

پاسخ تمرین های سری قبل

سلام!

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

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

تعریف آرایه در heap

سلام!

در این جلسه می خواهیم طرز کار آرایه ها را در ++c یاد بدهیم و سپس طرز تعریف آرایه را در heap توضیح دهیم.

فرض کنید یک آرایه ی معمولی ۱۰ تایی را تعریف کرده اید:

int ar[10];

این خط باعث می شود که compiler به دنبال ۱۰ جای خالی پشت سر هم در حافظه بگردد و هر وقت که پیدا کرد، آدرس اولین خانه را در ar بریزد (پس نتیجه می گیریم که ar هم اشاره گر است). حالا مثلا اگر در برنامه بگوییم

ar[5] = 5;

یعنی ۵ خانه جلوتر از خانه ای که ar به آن اشاره می کند را پیدا کن و مقدار آن را برابر با ۵ قرار بده.

۰ نظر موافقین ۰ مخالفین ۱
روزبه صیادی