دانشگاه شهید بهشتی
دانشکده مهندسی برق و کامپیوتر
ترم دوم ۹۰-۸۹

برنامه‌سازی پیشرفته

گروه درسی بر روی گوگل
تارنامه ارسال تمرینات
استاد : دکتر آزاده منصوری
برنامه‌سازی پیشرفته - دانشگاه شهید بهشتی - ترم دوم سال تحصیلی ۹۰-۸۹ | تمرینات سری چهارم
آخرین به روز رسانی : ۱۹ فروردین ۹۰

تمرینات سری چهارم


تخریب کننده و سازنده کپی

  1. تمرین اول : مطالعه کد موجود

    با مطالعه کد موجود در پیوست چندین نکته برنامه‌نویسی را یاد بگیرید. همچنین به نحوه دقیق کار این دو کلاس مسلط شوید تا در تمرین بعدی آنها را بسط دهیم. نکاتی که باید به آنها واقف شوید عبارتند از :

    1. چگونگی مقدار دهی اولیه (Initialization) متغیر‌های یک کلاس قبل از شروع کد سازنده با استفاده از عملگر دو نقطه پس از تعریف پروتوتایپ تابع سازنده
    2. شباهت‌ها و تفاوت‌های class و struct
    3. موارد استفاده از کلیدواژه const پس از تعریف پروتوتایپ توابع عضو یک کلاس
    4. موارد استفاده از کلیدواژه const در نوع خروجی توابع عضو یک کلاس
    5. دلایل لزوم استفاده از const
    6. نحوه استفاده از کلاسی که با قالب (template) تعریف شده باشد
    پاسخ این ۶ سوال را به فارسی و با ذکر مثال کوچک در فرمت‌های معمول ارسال نمایید.

  2. تمرین دوم : مخرب، سازنده کپی و ...

    به هر دو کلاس معرفی شده در تمرین یک و پروژک نوروزی، تابع

    	void clear();
    
    اضافه شده است. برای این تابع بدنه‌ای بنویسید که تمام عناصر را تخلیه کند و تعداد عناصر را به صفر برساند. تست این تابع در فایل‌های تست در پیوست وجود دارد. پس از آن به این دو کلاس توابع مخرب (Destructor) و سازنده کپی (Copy Constructor) اضافه کنید. دقت کنید که پروتوتایپ این توابع نیز در فایل‌های موجود در پیوست قرار دارد و کافیست شما بدنه را بنویسید (اینکار به دلیل حساسیت تعریف پروتوتایپ این توابع انجام شده است، بنابراین سینتکس را یاد بگیرید) سپس برنامه‌های تست را اجرا نمایید. حتما برنامه تست را هم ملاحظه کنید و در صورت نیاز آنرا تغییر دهید، و یا بخش‌هایی به آن اضافه کنید. روش نوشته شدن برنامه تست را نیز باید فرا بگیرید.

    نکته : فراموش نکنید که در مواردی که Copy Constructor فراخوانی می‌شود، در واقع جایگزین Constructor می‌گردد و سازنده پیش فرض دیگر فراخوانی نمی‌شود. بنابراین این فرض را نداشته باشید.

    برای این تمرین، حداقل باید دو فایل کلاس تکمیل شده و تست شده را ارسال کنید. یک کلاس و یا کلاسی که تست نشده باشد یا درست کار نکند هیچ نمره‌ای کسب نخواهد کرد، بنابراین تا هردو صد درصد کامل نشده‌اند به عنوان پاسخ تمرین ارسال نکنید (می‌توانید با قالبی دیگر برای کمک گرفتن ارسال کنید) در صورتی که فایل‌های تست را نیز تغییر داده‌اید، آنها را نیز به همراه برنامه ارسال کنید.

پیوست‌ها

test.cpp
DynamicArray.h
LinkedArray.h
DynamicArray_test.h
LinkedArray_test.h
فایل فشرده شامل ۵ فایل فوق : assg4_src.tar.gz

نحوه ارسال

پاسخ سوالاتی که حل کرده‌اید در قالب قبلی به آدرس sbuap89b@gmail.com ارسال کنید. ترجیحا فایل‌ها را فشرده سازی نکنید و خود فایل‌های برنامه را پیوست کنید. آخرین فرصت ارسال تمرینات این سری چهارشنبه ۲۴ فروردین خواهد بود.

بازگشت