توابع دوست کلاس در برنامه نویسی (C++ (Class Friend functions

 

سربارگذاری عملگرها با توابع دوست:

سربازگذاری عملگرها در زبان ++C که برای عملگرهای دودویی (مثل جمع و ضرب و ... ) شیء سمت چپ، تابع عملگر مربوطه را فراخوانی می‌کند، و شی سمت راست به عنوان آرگومان به تابع ارسال می‌شود. به عنوان مثال اگر عملگر + برای کلاسی سربارگذاری شده باشد، دو عبارت زیر معادل هم هستند:

 

ob1 + ob2    ≡    ob1.operator+( ob2 )

 

حال فرض کنید کلاسی برای کار با اعداد مختلط با نام comp تعریف کرده‌ایم. عملگر + هم مطابق با عمل جمع اعداد مختلط تعریف شده است. برای جمع زدن یک عدد حقیقی با یک عدد مختلط از تابع + به صورت زیر استفاده می‌کنیم:


comp operator + ( double f )

 

اما این تابع تنها برای جمع عدد حقیقی از سمت راست کاربرد دارد، و نمی‌تواند از سمت چپ عدد حقیقی را با عدد مختلط جمع کند. به عنوان نمونه، برای یک عدد مختلط مانند c، تابع فوق عبارت c + 3.5 را به خوبی محاسبه می‌کند. اما اگر جای دو عملوند عوض شود، کاری از دست این تابع بر نمی‌آید. چرا که در این حالت شیء سمت چپ از جنس خود کلاس نخواهد بود.

اینجاست که تابع دوست به کمک ما می‌آید. به تعریف زیر دقت کنید:

 

friend comp operator + ( double f , comp c )

 

زمانی که از توابع دوست برای سربارگذاری عملگرهای دودویی استفاده می‌شود - بر خلاف حالت اصلی - هر دو شیء به صورت آرگومان به تابع ارسال می‌گردند. آرگومان اول شی سمت چپ و آرگومان دوم شیء سمت راست را مشخص می‌کند. با تعریف بالا به راحتی عبارت زیر هم محاسبه می‌شود:

 

c2 = 3.5 + c1;

 

کد کامل این کلاس به این صورت خواهد بود:

 

class comp

{

    friend comp operator + ( double, comp );

  private:

    double real, imag;

  public:

    comp( double r, double i )

    {

      real = r;

      imag = i;

    }

    comp operator + ( comp r )

    {

      comp temp( real + r.real, imag + r.imag );

      return temp;

    }

    comp operator + ( double r )

    {

      comp temp( real + r, imag );

      return temp;

    }

};

 

comp operator + ( double l, comp r )

{

  comp temp( l + r.real, r.imag );

  return temp;

}

 

تذکر: این تعریف برای کلاس اعداد مختلط به هیچ وجه کامل نیست و تنها قسمت کوچکی از آن را شامل می‌شود. البته کتابخانه‌های زبان ++C هم برای کار با اعداد مختلط توابع و کلاس‌هایی دارند که همه نیازها را برآورده می‌کنند.


مطالب مشابه :


کلاس کامل اعداد مختلط

برنامه نویسی C++ Programming - کلاس کامل اعداد مختلط - برنامه نویسی زبان ++c




از"کلاس‌های مختلط" تا "پارتی‌های مبتذل" + عكس

جوان و بصیرت - از"کلاس‌های مختلط" تا "پارتی‌های مبتذل" + عكس - با سلام برای استفاده ی آسان از




کلاس های جدید خانه کارگر تبریز مهر1392

کافی نت سهنديه تبريز 04134431814 - کلاس های جدید خانه کارگر تبریز مهر1392 - آدرس كافي نت سهنديه




چگونه دانش آموزان کلاس اول ابتدایی مختلط رابه کارکروهی یاهمیاری درکلاس علاقهمند کنم

طراحی و مطالعه مسائل یادگیری و آموزش - چگونه دانش آموزان کلاس اول ابتدایی مختلط رابه




توابع دوست کلاس در برنامه نویسی (C++ (Class Friend functions

البته کتابخانه‌های زبان ++c هم برای کار با اعداد مختلط توابع و کلاس‌هایی دارند که همه




باز هم به من بگو چرا ؟!

زبــــــــــان بستــــــــــه - باز هم به من بگو چرا ؟! به نظر من کلاس مختلط خیلی خوبه !




تمرینات مختلط فارسی و ریاضی اول دبستان _ مهر ماه

کلاس اولی ها - تمرینات مختلط فارسی و ریاضی اول دبستان _ مهر ماه - كلاس اول - کلاس اولی ها




لیست آموزشگاه های زبان تهران

گروه آموزشی آریو تاک - لیست آموزشگاه های زبان تهران - آموزش زبان با متد آموزشی روز دنیا




توصیه هایی از روی تجربه

کلاس زبان یا بسته های آموزشی نحوه برگزاری : غیر مختلط – در مواردی مختلط. اطلاعات تماس :




برچسب :