Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»



Pdf көрінісі
бет284/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   280   281   282   283   284   285   286   287   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

 

...

monstr operator ++(int){ 

monstr M(*this); health++; 

return M; }

};

monstr Vasia;

cout << (Vasia++).get_health();


207

Бинарлы операциялардың асыра жүктелуі

Класс ішінде анықталатын бинарлы функция-операция параметрлі ста-

тикалық емес əдістің көмегімен сипатталуы тиіс, мұнда оны  шақырған объект 

алғашқы операнд болып саналады:

class monstr{

 ...

   bool operator >(const monstr &M){ 

if( health > M.health) return true; 

return false;

   }

};

Егер функция кластан тыс анықталса, оның құрамында класс типіндегі 

екі параметр болу керек:

bool operator >(const monstr &M1, const monstr &M2){ 

if( Ml.get_health() > M2.get_health()) return true; 

return false;

}

Меншіктеу операциясының асыра жүктелуі

Меншіктеу операциясы кез келген класта келісім бойынша жекелеген эле-

менттер бойынша көшіру ретінде анықталған. Бұрыннын бар бір объектіге басқа 

объектінің мəнін меншіктеу кезінде əрқашанда осы операция шақырылады. 

Егер класта компьютер жады динамикалық түрде бөлінетін өрістер бар бол-

са, онда өзіндік меншіктеу операциясын анықтау керек. Меншіктеу семан-

тикасын сақтау үшін объектіге арнайы шақырылған операция-функция осы 

объектіге сілтеме қайтаруы керек жəне параметр ретінде жалғыз аргументті 

– меншіктелетін объектіге сілтемені қабылдауы тиіс. 



Достарыңызбен бөлісу:
1   ...   280   281   282   283   284   285   286   287   ...   642




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет