المؤشر this

وقت القراءة: 3 دقائق 87 مشاهدة

في لغات البرمجة الكائنية (OOP) مثل C++، يكون المؤشر this عبارة عن كلمة أساسية تُستخدم للإشارة إلى الكائن الحالي داخل دالة العضو. إنه مؤشر خاص يحمل عنوان الذاكرة لمثيل الكائن الحالي.

مثال 1:

#include <iostream>
using namespace std;
class stud {
    public:
        void address() {
            cout << this;
        }
};
int main()
{
    stud a, b, c;
    cout << "The adress of a\t";
    a.address();
    cout << endl << "The adress of b\t";
    b.address();
    cout << endl << "The adress of c\t";
    c.address();
    cout << endl;
    return 0;
}

في هذا البرنامج، لدينا class يسمى Stu، والذي يحتوي على عنوان دالة العضو address(). تقوم دالة العضو هذه ببساطة بطباعة عنوان الذاكرة للكائن الحالي باستخدام المؤشر this.

وظيفة المؤشر this:

  • في دالة address() لـstud class، يشير this إلى الكائن الحالي الذي يتم استدعاء دالة العضو من أجله.
  • داخل الدالة (address()) يقوم cout << this; بطباعة عنوان الذاكرة للكائن الحالي.
  • في الدالة main()، نقوم بإنشاء ثلاثة كائنات a وb وc من class stud.
  • نقوم بعد ذلك باستدعاء الدالة address() على كل كائن، والتي تطبع عنوان الذاكرة لكل كائن.
  • يضمن المؤشر this طباعة عنوان الذاكرة الصحيح للكائن الحالي عند استدعاء دالة address() لكل كائن.

مثال 2:

#include <iostream>
using namespace std;
class Student {
        int id;
    public:
        void set_id(int id) {
            this->id = id;
        }
        void print_id() {
            cout << "ID is " << id << endl;
        }
};
int main()
{
    Student St;
    St.set_id(10);
    St.print_id();
    return 0;
}

في هذا البرنامج، لدينا class اسمه Student مع معرف متغير عضو خاص يمثل id الطالب. يوفر الـclass دالتين للعضو: set_id() وprint_id().

وظيفة المؤشر this:

  • في دالة العضو set_id()، معرف المعلمة الذي تم تمريره إلى الدالةله نفس اسم معرف متغير العضو للفئة. للتمييز بينهما، يتم استخدام المؤشر this.
  • داخل الدالة set_id()، this->id = id; يعين قيمة معرف المعلمة لمعرف متغير العضو للكائن الحالي.
  • يشير المؤشر this إلى الكائن الحالي الذي يتم استدعاء دالة العضو من أجله. يتم استخدامه للوصول إلى أعضاء الكائن.
  • في الدالة main()، يتم إنشاء كائن St من فئة Student. يتم استدعاء الدالة set_id() لتعيين معرف الكائن St إلى 10.
  • ثم يتم استدعاء الدالة print_id() لطباعة معرف الكائن St.

ستكون مخرجات البرنامج كالتالي:

ID is 10

 

مشاركة هذا

المؤشر this

Or copy link

المحتوى
Arabic