كما اكتشفت ، فإن محاولة استخدام مشغلي الحساب على المؤشرات ستؤدي إلى محاولة المترجم إلى القيام بحساب مؤشر. للاتصال بالمشغل الزائد الخاص بك على مؤشر ، يمكنك إما القيام به
Fraction *f, *g; // allocated with new
f->operator+(*g); /// Urgh!
أو تقريبًا قبيح
Fraction *f, *g;
(*f) + (*g);
إحدى الطرق السهلة لجعل هذا أجمل بعض الشيء هي إعلان ثلاثة متغيرات مرجعية جديدة مثل هذا:
Fraction& f1 = *pfr1;
Fraction& f2 = *pfr2;
Fraction& f3 = *ptr3;
أين ال pfrN
S هي المؤشرات لكسورك. الآن إذا كنت تستخدم المتغيرات المرجعية ، فسيتم استدعاء المشغلين المحملين بشكل صحيح ، ولا تحتاج إلى وضع جميع العلامات النجمية الإضافية. ستختفي المراجع في نهاية النطاق ، وربما لن تستخدم أي ذاكرة إضافية في البرنامج. لا تزال بحاجة إلى delete
المؤشرات الأصلية على الرغم من!