You are not allowed to perform this action

سوال ۵

کوتاه پاسخ دهید.

  1. کلاس struct Rect{ double w, h; }; را برای نگه‌داری ابعاد یک مستطیل در برنامه‌ای داریم. می‌خواهیم به این برنامه قابلیت محاسبه اندازه‌ی قطر یک مستطیل را نیز اضافه کنیم. برای این‌کار تابع CalcDiam() را می‌توانیم به‌صورت یک member function (درون کلاس) و یا یک تابع مستقل که‌یک Rect به عنوان پارامتر ورودی می‌گیرد (نظیرdouble CalcDiam(Rect r) ) بنویسیم. این دو روش را از منظر استفاده مجدّد (Reusability) مقایسه کنید.
  2. می‌خواهیم تعدادی از Rectهای قسمت قبل را مرتب sort)) کنیم. برای این منظور قصد داریم عملگر < را روی اعضای این کلاس طوری تعریف کنیم که مستطیل‌ها را بر اساس عرض (w) و در صورتی تساوی عرض، براساس طول (h) مرتب کند. دو روش ممکن ارسال پارامتر به عملگر < را بنویسید و بیان‌ کنید که کدام‌یک سریع‌تر است و چرا؟
  3. دو مورد کاربرد : (دو نقطه) و دو مورد کاربرد :: (دو تا دو نقطه!) در زبان C++ را ذکر کنید.
  4. کاربرد this در بدنه‌ی یک تابع عضو کلاس (member function) چیست؟ مثالی بزنید که در آن ملزم به استفاده از this باشیم.