هذا المؤشر
يوجد في الفصل مؤشر خاص مخفي جدًا، وهو هذا المؤشر !
لماذا هو خاص؟ لأنه طالما تم تعريف الفئة، سيقوم النظام بتحديد مؤشر يسمى هذا مسبقًا والإشارة إلى الكائن الحالي. على الرغم من أننا لا نستطيع رؤيته إلا أنه يمكننا استخدامه.
على سبيل المثال، دعونا نلقي نظرة على وظيفة عضو في فئة الساعة، والرمز المستخدم لتعيين قيمة الوقت:
intClock::SetTime(inth,intm,ints){H=h;M=m;S=s;}
يمكنك أن ترى أن متغيرات الأعضاء في فئة الساعة نفسها هي H وM وS. ويجب تعيين قيم لها من الخارج لتمييزها، نحدد المعلمات الرسمية بأحرف صغيرة. فإذا عرفنا وجود ذلك يمكننا أن نكتب هكذا:
intClock::SetTime(inth,intm,ints){this->H=h;this->M=m;this->S=s;}// يمكن كتابته أيضًا على النحو التالي: intClock::SetTime(inth, intm,ints ){(*this).H=h;(*this).M=m;(*this).S=s;}
يمكن ملاحظة أن طريقتي الكتابة المذكورتين أعلاه تستخدمان هذا المؤشر المخفي في الكائن، والذي يمكن أن يكون بوضوح عضوًا في هذه الفئة، وبالتالي يميز هذا الكائن بوضوح عن المتغيرات الخارجية. في الواقع، عندما يستدعي كائن وظيفة العضو الخاصة به، حتى لو كان هناك كائنات متعددة من هذه الفئة في البرنامج، فلا يوجد سوى رمز واحد لوظيفة العضو، لذلك من أجل التمييز بين الكائن الذي يستدعي وظيفة العضو، يجب على المترجم أيضًا تحويل يتم استخدامه في شكل هذا->وظيفة العضو.