أحيانا عندما اشعر بالملل اقوم بكتابة بعض الأكواد الغريبه و احاول إيجاد نتيجتها، إليكم إحداها:
فلنفترض وجود الفئه int64:
struct int64
{
int64(int v) : value(v) {}
int64(long long v) : value(v) {}
int64(const int64& v) : value(v.value) {}
int64& operator+() { return *this; }
int64& operator-() { return -value, *this; }
int64& operator++() { return value++, *this; }
int64 int64::operator++(int)
{
value++;
return int64(value - 1);
}
int64& operator--() { return value--, *this; }
int64 operator--(int)
{
value--;
return int64(value + 1);
}
public:
long long value;
public:
friend int64 operator+(const int64& lhs, const int64& rhs)
{ return int64(lhs.value + rhs.value); }
friend int64 operator-(const int64& lhs, const int64& rhs)
{ return int64(lhs.value - rhs.value); }
};بالكود القادم أوجد التالي:
1- قيمة المتغير result
2- عدد المتغيرات المؤقته التى سيقوم المترجم بإنشائها(مع شرح خطوات انشائهم).
int64 value = 100; int64 result = ++--++value++-++--+--++-++value++--++;
و الله ولي التوفيق

