التحميل الزائد للمعاملات بلغة ++C

يحدث التحميل الزائد للمعاملات (Operator Overloading) في لغة سي بلس بلس عندما تقوم بتعريف دالة عامل 

(operator function) 

لعامل معين مثل + أو - أو * أو / وغيرها، والتي يتم استخدامها لتنفيذ العمليات الحسابية على الكائنات المخصصة.


على سبيل المثال، إذا كان لديك كائنين من النوع 

Complex (الذي يمثل الأعداد المركبة)،

 يمكنك تعريف دالة عامل لعامل الجمع (+) لتنفيذ الجمع بين الكائنين، كما يلي:


class Complex {

   public:

      Complex operator+ (const Complex& other) 

{

         Complex result;

         result.real = real + other.real;

         result.imaginary = imaginary + other.imaginary;

         return result;

      }

   private:

      double real;

      double imaginary;

};



في هذا المثال، تم تعريف دالة عامل لعامل الجمع (+) باستخدام الكلمة المفتاحية "operator" وتم تحديد البارامترات المطلوبة للدالة (const Complex& other) والتي تمثل الكائن الآخر الذي سيتم إضافته إلى الكائن الحالي. ثم تم تنفيذ العملية الحسابية وإرجاع النتيجة.


بهذه الطريقة، يمكنك تعريف دوال عامل لجميع العمليات الحسابية والمنطقية وغيرها لتنفيذها على كائنات مخصصة في لغة سي بلس بلس.

تعليقات

المشاركات الشائعة من هذه المدونة

Call by valve & call by reference

ما الطريقة الصحيحة لتعريف المتغيرات؟