إخوتي هذا جزء من برنامج كنت أعمل عليه وواجهتني مشكلة أثناء استخدام هذا الصنف فيما بعد
#include <iostream>
using namespace std;
class A
{
private:
int number;
public:
A() {}
A(int n) : number(n) {}
void operator+=(const A &temp)
{
number = number + temp.number ;
cout << "the value of temp " << temp.number << endl;
}
void print()
{
cout << number << endl;
}
};
void main()
{
A object(2);
object += object;
object.print();
}طبعا المشكلة في operator+= أننا أخذا reference لنفس الكائن ولكن بعد التعديل على الكائن تغير ال reference أيضا والنتيجة أن أي استخدام لاحق للمتغير temp سيؤدي إلى نتائج كارثية
الحل :
هل أزيل ال reference أم هناك حل أفضل ؟
وسؤال إذا تغيرت قيمة temp فما فائدة const keyword أصلا

