اورلود کردن عملگر فراخوانی تابع () در ++C

عملگر فراخوانی تابع () را می‌توان برای اشیا آن کلاس اورلود کرد. با اورلود کردن عملگر ()، راه جدیدی برای فراخوانی تابع ایجاد نمی‌کنید، بلکه یک تابع عملگر ایجاد خواهید کرد که می‌توان تعداد دلخواهی پارامتر به آن ارسال کرد.

مثال زیر نحوه اورلود کردن عملگر فراخوانی () را نشان می‌دهد.

#include <iostream>
using namespace std;
 
class Distance {
   private:
      int feet;             // 0 to infinite
      int inches;           // 0 to 12
      
   public:
      // required constructors
      Distance() {
         feet = 0;
         inches = 0;
      }
      Distance(int f, int i) {
         feet = f;
         inches = i;
      }
      
      // overload function call
      Distance operator()(int a, int b, int c) {
         Distance D;
         
         // just put random calculation
         D.feet = a + c + 10;
         D.inches = b + c + 100 ;
         return D;
      }
      
      // method to display distance
      void displayDistance() {
         cout << "F: " << feet << " I:" << inches << endl;
      }   
};

int main() {
   Distance D1(11, 10), D2;

   cout << "First Distance : "; 
   D1.displayDistance();

   D2 = D1(10, 10, 10); // invoke operator()
   cout << "Second Distance :"; 
   D2.displayDistance();

   return 0;
}

با اجرای این کد، خروجی زیر تولید می‌شود.

First Distance : F: 11 I:10
Second Distance :F: 30 I:120

منبع: ترجمه از سایت tutorialspoint.com

در جلسه بعدی آموزش ++C با ما همراه باشید.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>
مطلب پیشنهادی:  انتزاع داده (Data Abstraction) در ++C

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *