• 0
smart1_software_engineer

كود صغير اوى حوالى عشر سطور عاوز اعرف فكرته

سؤال

4. Create a prefix and postfix increment operator for your SimpleCircle class that increments itsRadius.

const SimpleCircle& SimpleCircle::operator++()

{

++(itsRadius);

return *this;

}

// Operator ++(int) postfix.

// Fetch then increment

const SimpleCircle SimpleCircle::operator++ (int)

{

// declare local SimpleCircle and initialize to value of *this

SimpleCircle temp(*this);

++(itsRadius);

return temp;

}

بالتحديد عاوز اعرف شرح اول سطر

مع اطلالة سريعة على فكرة كيفية استخدام البوست فكس والبرى فكس

وشكرا

اما بالنسبة للبرنامج التالى لم افهمه تماما وبالله عليكم تساعدو اخوكم وتاخدو بيده

5. Change SimpleCircle to store itsRadius on the free store, and fix the existing methods.

class SimpleCircle

{

public:

SimpleCircle();

SimpleCircle(int);

~SimpleCircle();

void SetRadius(int);

int GetRadius();

const SimpleCircle& operator++();

const SimpleCircle operator++(int);

private:

int *itsRadius;

};

SimpleCircle::SimpleCircle()

{itsRadius = new int(5);}

SimpleCircle::SimpleCircle(int radius)

{itsRadius = new int(radius);}

const SimpleCircle& SimpleCircle::operator++()

{

++(itsRadius);

return *this;

}

// Operator ++(int) postfix.

// Fetch then increment

const SimpleCircle SimpleCircle::operator++ (int)

{

// declare local SimpleCircle and initialize to value of *this

SimpleCircle temp(*this);

++(itsRadius);

return temp;

}

ارجو ان اى واحد قلبه طيب وباله طويل يشرح لى البرنامجين دول وله منى الكثير من الدعاء لانهم اوقفونى فى تعلمى للبرمجة

ومنتظر ردكم ان شاء الله :( :( :( :(

0

شارك هذا الرد


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

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

  • 0

شكلك عم تاخد مادة data structure على كل حال اللي بقدر اعمله هو تقديم شرح صغير للموضوع في الملف المرفق

اتمنى تقراه منيح لأنه بعدها رح تفهم شو يعني postfix and prefix

سلام

InfixPrefixAndPostfix.ppt

0

شارك هذا الرد


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

قارن بين هذه العمليات التي انت عملتها وبين عمليات النوع int

int a=5;
int b;

b = ++a;
b = a++;

في الحالة الأولى يضاف إلى المتغير a واحد ثم يسند (أي تسند القيمة الجديدة)

أما

في الحالة الثانية يسند a إلى b ثم يضاف الواحد (أي تسند القيمة القديمة)

ولعمل هذا بالكلاس لابد من استخدام

operator overloading

ولكن لاحظ يوجد عمليتين ++ لأن هناك حالتين

لذلك نضع الباراميتر في الحالة الثانية لكي نفرق (int)

ولكن كيف نطبق الحالة الثانية ؟؟؟ (أي داخل الدالة)

نسند القيمة في متغير وليكن temp ثم نجري الاضافة على ال this عملية الاضافة ثم نجعل الداله ترجع ال temp

========

والان نتتبع الحاله الثانية

b = a++;

سوف توضع في b قيمة الtemp التي هي قيمة a القديمة ثم تتغير قيمة a

========

الحالة الأولى هي البري

والحالة الثانية هي البوست

=================

أتمنى يكون الشرح واضح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

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

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