اورلود کردن عملگرهای ورودی/خروجی در ++C

در ++C می‌توان نوع داده‌های داخلی را با استفاده از عملگر استخراج استریم << وارد کرد و یا با استفاده از درج استریم >> به خارج ارسال کرد. عملگرهای درج استریم و استخراج استریم را می‌توان برای وارد و خارج کردن نوع داده‌های تعریف شده کاربر، مانند اشیا، اورلود کرد.

مهم است که تابع اورلود کننده عملگر را به عنوان دوست کلاس تعریف کرد زیرا بدون ایجاد یک شی فراخوانی می‌شود.

مثال زیر نحوه اورلود کردن عملگر استخراج << و عملگر درج >> را نشان می‌دهد.

#include <iostream>
using namespace std;
 
class Distance {
   private:
      int feet;             // 0 to infinite
      int inches;           // 0 to 12
      
   public:
      // required constructors
      Distance() {
         feet = ;
         inches = ;
      }
      Distance(int f, int i) {
         feet = f;
         inches = i;
      }
      friend ostream &operator<<( ostream &output, const Distance &D ) { 
         output << "F : " << D.feet << " I : " << D.inches;
         return output;            
      }

      friend istream &operator>>( istream  &input, Distance &D ) { 
         input >> D.feet >> D.inches;
         return input;            
      }
};

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

   cout << "Enter the value of object : " << endl;
   cin >> D3;
   cout << "First Distance : " << D1 << endl;
   cout << "Second Distance :" << D2 << endl;
   cout << "Third Distance :" << D3 << endl;

   return ;
}

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

$./a.out
Enter the value of object :
70
10
First Distance : F : 11 I : 10
Second Distance :F : 5 I : 11
Third Distance :F : 70 I : 10

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

مطلب پیشنهادی:  اعضای استاتیک یک کلاس در ++C

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

همچنین لطفا اپلیکیشن اندویدی ما را هم نصب کنید.

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

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

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