• 0
فوضوية

هل الحل صحيح ام لا

سؤال

اريد ان اعرف هل حلي صح ام لا

فيه كود وعليه اسأله بس ما ادري اذا صح او لا

هذا السؤال

class strange ()
{
Private:
int a;
float b;
};

a- Write a statement that shows the declaration in the class strange to overload the binary operator + as a friend function

b- Write a statement that shows the declaration in the class strange to overload the operator == as a friend function

c- Write a statement that shows the declaration in the class strange to overload the post-increment operator ++ as a friend function

الكود بعد الاجوبه


#include <iostream>
#include <cstdlib>
using namespace std;
class strange ()
{
private:
int a;
float b;
friend int operator+(strange &obj,int x);
friend bool operator ==(strange &obj);
friend strange operator++(int);
};

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

بما ان الدالة صديقة فعليك تحديد طرفي المعامل

يعني عندما تقومين بالتالي


strange s1, s2;
.
.
.
.
.
if (s1 ==s2)
.
.
.
.

سيتم استدعاء الدالة


operator==(s1,s2)

بدلا من


s1.operator==(s2);

التي سوف تستدعى اذا كانت الدالة معرفه كعضو في الكلاس

بالنسبة لمعامل التزايد فاعتقد ان هناك نقطة في اضافة معامل من نوع int من اجل التمييز بينه وبين معامل التزايد المسبق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكراً على ردك

لكن ممكن تشرح لي الفرق بين الكودين اللي كتبتها ...

معليش آخي , لكن ما عرفت ماتقصده في النقطه الاخيرة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يعني لو انتي تشتي تخلي الدوال صديقة اعمليه كذا

بالنسبة للدالة الاولى


friend bool operator ==(strange &obj, strange& other);

بالنسبة لهذه الداله :


friend int operator+(strange &obj,int x);

فمنطقك يقول ان نتيجه جمع رقم صحيح مع الاوبجكت نتيجته هي رقم صحيح ! ماذا اذا كان هذا صحيح اما لا يعتمد على تعرفيك للعملية

بالنسبة لدالة التزايد هل تريدين عمل overloading لهذا


++i;

او هذا ؟


i++;

هنا لازم تفرقي اذا كان معامل التزايد المسبق او الملحق علشان تفرقي بينهم


operator++()

تعمل overloading لمعامل التزايد المسق

بينما


operator++(int);

تعمل overloading لمعامل التزايد الملحق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ششششششششكر من الاعماق ()

يعطيك العافيه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .