دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۹
  • مرداد

جلسه ۲۶ : توابع مجازی در ++C

  • دسته‌بندی‌ها :
جلسه ۲۶ : توابع مجازی در ++C
    • جزئیات
    • نوع محتواآموزش تصویری

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش ++C در خدمت شما دوستان هستیم . در بخش قبلی با ساختمان ها در ++C آشنا شدید، در این جلسه قصد داریم به آموزش توابع مجازی در ++C یا Virtual Functions در سی پلاس پلاس بپردازیم.

      یک تابع مجازی، تابع عضوی در کلاس پایه می باشد که ما باید آن را در کلاس های مشتق شده پیاده سازی کنیم.

      توابع مجازی در ++C

      قبل از ورود به جزئیات اجازه دهید تا مثالی بزنیم تا بدانیم چرا از توابع مجازی استفاده می کنیم.

       

      فرض کنید که داریم روی یک بازی کار می کنیم.

      ما یک کلاس Weapon ایجاد کردیم و دو کلاس Bomb و Gun را برای بارگذاری ویژگی های مربوطه مشتق کرده ایم.

      مثال : 

      خروجی:

      مثال : 

      ما سه اشاره گر w, b و g را برای کلاس های بالا تعریف کرده ایم و تابع عضو ()loadFeatures را برای هر شی فراخوانی کرده ایم:

      مثال : 

       

      با این حال پروژه بازی ما بزرگ و بزرگ تر می شود و تصمیم می گیریم تا یک کلاس loader جداگانه ایجاد کنیم.

      این کلاس ویژگی های اضافی هر سلاح را بسته به این که کدام سلاح انتخاب شده است، بارگذاری می کند.

      مثال : 

      در زیر کلاس Loader را پیاده سازی کرده ایم:

      مثال : 

      خروجی:

      مثال : 

      پیاده سازی ما درست به نظر می رسد اما weapon features سه بار بارگذاری شده است!

      در ابتدا شی Weapon به نام w به شی کلاس Bomb به نام b اشاره می کند. و تلاش می کند تا features شی Bomb را با ارسال آن به تابع ()loadFeatures بارگذاری کند.

      به طور مشابه همین کار را با شی Gun انجام داده ایم.

      با این حال تابع ()loadFeatures کلاس Loader یک اشاره گر به کلاس Weapon را به عنوان آرگومان می گیرد.

      مثال : 

      این همان دلیلی است که waepon features سه بار بارگذاری می شود.

      برای حل این موضوع نیاز داریم تا تابع کلاس پایه را با استفاده از کامه کلیدی virtual مجازی کنیم.

      مثال : 

       

      مثال

      مثال : 

      خروجی به شکل زیر می باشد:

      مثال : 

      استفاده از توابع مجازی برنامه هایمان را نه تنها تمیز تر بلکه انعطاف پذیر تر نیز می کند.

       

      کلاس انتزاعی و تابع مجازی محض در ++C

      هدف برنامه نویسی ++C تقسیم پیچیدگی برنامه به بخش های کوچک تر است.

      در ++C می توانید یک کلاس انتزاعی (ABstract) ایجاد کنید که نمی توانید هیچ شیی را از آن تعریف کنید.
      با این حال می توانید یک کلاس از آن مشتق کنید و اشیا را از ان ایجاد کنید.

      کلاسی که دارای تابع مجازی محض (pure) می باشد، یک کلاس انتزاعی است.

       

      تابع مجازی محض در ++C

      تابع مجازی که انتهای آن با ۰= تعریف شود، یک تابع مجازی محض است.

      مثال : 

      مثال

      مثال : 

      خروجی:

      مثال : 

       

      جلسه آموزش توابع مجازی در ++C نیز به پایان رسید.
      در جلسه بعد به آموزش الگو ها در ++C خواهیم پرداخت.با ما همراه باشید

      QR:  جلسه ۲۶ : توابع مجازی در ++C
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر