السلام عليكم ورحمة الله وبركاته
أخواني أنا عندي كتاب علم نفسك C++ في 21 يوم ولي شهرين ما قضيت الكتاب :lol:
عل كلي وصل إلى فصل الإجرءات المتقدمة وكان فيها إعادة الوصف ووو
المهم وصل فيها إلى كود إعادة تعين معامل السابق واللاحق في الصنف والحقيقة ما أقنعني السيد جيسي ليبرتي (مؤلف الكتاب) وأريدكم تقنعوني
هذا هو الكود
// Listing 10.12
// Returning the dereferenced this pointer
#include <iostream.h>
class Counter
{
public:
Counter();
~Counter(){}
int GetItsVal()const { return itsVal; }
void SetItsVal(int x) {itsVal = x; }
const Counter& operator++ (); // prefix
const Counter operator++ (int); // postfix
private:
int itsVal;
};
Counter::Counter():
itsVal(0)
{}
const Counter& Counter::operator++()
{
++itsVal;
return *this;
}
const Counter Counter::operator++(int x)
{
Counter temp(*this);
++itsVal;
return temp;
}
int main()
{
Counter i;
cout << "The value of i is " << i.GetItsVal() << endl;
i++;
cout << "The value of i is " << i.GetItsVal() << endl;
++i;
cout << "The value of i is " << i.GetItsVal() << endl;
Counter a = ++i;
cout << "The value of a: " << a.GetItsVal();
cout << " and i: " << i.GetItsVal() << endl;
a = i++;
cout << "The value of a: " << a.GetItsVal();
cout << " and i: " << i.GetItsVal() << endl;
return 0;
}السؤال وشلون قدر المعالج يعرف أيهن السابق واللاحق طبعا تبي تقلولي بإضافة وسيط ل Operator ولكن أحتاج إلى شرح أكثر
إضافتا إلى أن كود معامل اللاحق ما أقتنعت فيه
const Counter Counter::operator++(int x)
{
Counter temp(*this);
++itsVal;
return temp;
}وش اللي تغير هذا الكود هو نفسه حق السابق لأنه سوف يزيد رقم للمتغير ثم إرجاعه !!
أتمنى أنك تساعدوني في فهم ما يتعلق بي الإجراءات المتقدمة
تحيااااااتي,,,