3. SELF параметрі және тәсілді шақыру
Тәсілді шақыру кезінде оған тағы бір параметр жіберіледі, бұл тәсілді шақырып отырған объект экземплярына алыс (дальний) 32-битті кӛрсеткіш.
Бұл кӛрсеткіш Self идентификаторы арқылы қолданылады.
Егер тәсіл жұмысының логикасы объекттің ӛзіне-ӛзі хабар жіберуінде болса(ӛз тәсілін Self шақырады), онда программаның оқылуын түсінкті ету үшін Self –ті айқын түрде кӛрсеткен дұрыс. Бұл параметрге шын мәнінде қажеттілік тәсіл ішінде ассемблерді пайдаланған уақытта туады. Паскалда тәсіл әрдайым алыс шақыруды қолданып шақырылады. Егер TMyObject классындағы тәсілдің атауы мынадай болса procedure Init(x,y:integer); онда шақыру былай жазылған кездегідей орындалады procedureInit(x,y:integer;var SELF:TMyObject); және
MyObject^.Init(10,20); деп шақырылған уақытта стекқа 10,20 сандары ендіріледі, бұдан соң MyObject кӛрсетіп тұрған жады орнының сегменті мен жылжуы (смещение) ендіріледі. Бұдан кейін компилятор алыс CALL командасын Init тәсіліне ену адресін кӛрсетумен бірге генерация жасайды (адрес бұл жағдайда қатаң түрде компилятор арқылы жазылады, және ешқандай таблицадан таңдап алынбайды).
Достарыңызбен бөлісу: |