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


int  болуы тиіс. Ол бұларды префикстік формадан ажыра- тып алу үшін ғана қолданылады: class monstr{



Pdf көрінісі
бет182/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   178   179   180   181   182   183   184   185   ...   465
Байланысты:
аибм сплюс

 int 
болуы тиіс. Ол бұларды префикстік формадан ажыра-
тып алу үшін ғана қолданылады:
class monstr{
 
...
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;
}
Меншіктеу операциясының асыра жүктелуі
Меншіктеу операциясы кез келген класта келісім бойынша жекелеген эле-
менттер бойынша көшіру ретінде анықталған. Бұрыннын бар бір объектіге басқа 
объектінің мəнін меншіктеу кезінде əрқашанда осы операция шақырылады. 
Егер класта компьютер жады динамикалық түрде бөлінетін өрістер бар бол-
са, онда өзіндік меншіктеу операциясын анықтау керек. Меншіктеу семан-
тикасын сақтау үшін объектіге арнайы шақырылған операция-функция осы 
объектіге сілтеме қайтаруы керек жəне параметр ретінде жалғыз аргументті 
– меншіктелетін объектіге сілтемені қабылдауы тиіс. 
const monstr& operator = (const monstr &M){
// Проверка на самоприсваивание:
if (&M == this) return *this; 
if (name) delete [] name; 


Достарыңызбен бөлісу:
1   ...   178   179   180   181   182   183   184   185   ...   465




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

    Басты бет