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;
Достарыңызбен бөлісу: