C++التفرقة بين باراميترات الدوال و خصائص الكلاس
العامل this-> يقال له This Pointer, و هم يستخدم للتفرقة بين باراميترات الدوال و الخصائص الموجودة في الكلاس مما يجعلك قادر على وضع نفس الأسماء للبارميترات و الخصائص و تجنب حدوث أي أخطاء منطقية بسبب الأسماء المتشابهة.
الآن, سنضع لك عدة أمثلة حتى تلاحظ الأخطاء المنطقية التي قد تقع فيها بسبب الأسماء المتشابهة و كيف أن العامل this-> يحل لك هذه المشكلة.
في المثال التالي, قمنا بتعريف كلاس إسمه Book
يمثل المعلومات التي يمكن أن يتضمنها أي كتاب كعنوانه, إسم المؤلف, سعره و عدد صفحاته.
في الكلاس Book
بتعريف دالة إسمها setTitle()
عند استدعاءها نمرر لها نص فيتم وضعه كعنوان للكائن الذي قام باستدعائها.
المثال الأول
سنحصل على النتيجة التالية عند التشغيل.
في حال قمنا بإعادة المثال السابق مع إجراء تعديل بسيط عليه بحيث نجعل إسم الباراميتر الموضوع في الدالة setTitle()
هو نفسه إسم المتغير title
الموجود في الكلاس سيظهر لنا مشكلة منطقية عند تشغيل البرنامج كما سنرى في نتيجة التشغيل.
المثال الثاني
سنحصل على النتيجة التالية عند التشغيل.
لاحظ أن القيمة التي مررناها للدالة setTitle()
لم يتم تمريرها للمتغير title
الموجود في الكائن book
و هذا ما كنا نقصده بخطأ منطقي.
لحل المشكلة المنطقة التي شاهدناها في المثال الثاني, أي لجعل المترجم قادر على التفرقة بين البارميترات و المتغيرات الموجودة في الكلاس سنستخدم العامل this-> كلما أردنا الإشارة إلى المتغيرات الموجودة في الكلاس.
المثال الثالث
سنحصل على النتيجة التالية عند التشغيل.