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



Pdf көрінісі
бет184/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   180   181   182   183   184   185   186   187   ...   466
if (M.name){
name = new char [strlen(M.name) + 1]; 
strcpy(name, M.name);} 
else name = 0;
health = M.health; ammo = M.ammo; skin = M.skin; 
return *this;
}
Объектіге нұсқауыш функциясынан қайта оралу келесі меншіктеу опера-
циялары тізбегін жазуға мүмкін етеді:


208
monstr A(10), B, C; 
C = B = A;
Меншіктеу операциясын тек класс əдісі ретінде ғана анықтауға болады. Ол 
мұраланбайды.
new жəне delete операцияларының асыра жүктелуі
Жадыны басқарудың альтернативті нұсқаларын қамтамасыз ету мақсатында 
объект пен объетілер жиымына сəйкесінше динамикалық жады бөлу үшін 
new
жəне 
new[]
, сонымен қатар оны босату үшін 
delete 
жəне 
delete []
операцияларының өзіндік (меншікті) нұсқаларын анықтауға болады. 
Мұндай функция-операциялар келесідей ережелерге сəйкес келуі керек:
□ оларға класс типіндегі параметрлерді берудің қажеті жоқ;

new
жəне 
new[]
функцияларына алғашқы параметр ретінде 
size_t
типті объект өлшемі берілуі керек (
sizeof
операциясы қайтаратын бұл 
тип 

тақырыптық файлында анықталады); шақыру кезінде ол 
функцияға айқын емес түрде беріледі;
□ 
return
командасы басқа типтерге (көбінесе кластарға) нұсқауыштар 
қайтаратын болса да, бұл функциялар қайтарылатын мəннің 
void*
типімен 
анықталуы тиіс;

delete
операциясының қайтарылу типі
 void
жəне алғашқы аргументінің 
типі 
void* 
болуы тиіс;
□ компьютер жадын бөлу жəне босату операциялары кластың статикалық 
элементтері болып табылады.
Асыра жүктелген операциялардың тəртіптері олардың келісім бойынша 
орындайтын əрекеттеріне сəйкес келуі тиіс


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




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

    Басты бет