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


const модификаторын жою үшін қажет. Көбінесе ол  функциядағы  const



Pdf көрінісі
бет226/466
Дата20.07.2022
өлшемі3,66 Mb.
#37798
түріПрограмма
1   ...   222   223   224   225   226   227   228   229   ...   466
const
модификаторын жою үшін қажет. Көбінесе ол 
функциядағы 
const
модификаторы жоқ формалды параметрдің орнына 
тұрақтылық нұсқауышты беру кезінде қолданылады. Операция форматы:
const_cast <тип> (өрнек)
Мұндағы тип өрнек типімен бірдей болуы керек, бірақ ол 
const 
моди-
фикаторы бола алмайды. Əдетте бұл нұсқауыш болып табылады. Операция 
көрсетілген типтегі нəтиже алуды қалыптастырады.
Бұл операцияны енгізу қажеттілігі – функцияны жүзеге асыратын про-
граммалаушы ондағы өзгермейтін формалды параметрлерді 
const 
түрінде 
сипаттауға міндетті болмағанымен, бірақ көбінесе осылай істеу ұсынылады. 
C++ тілінің ережелері қарапайым нұсқауыштың орнына тұрақтылық 
нұсқауышты беруге тыйым салады. 
const_cast
операциясы бұл шектеуді 
айналып өту үшін енгізілген. Əрине, функция берілетін нұсқауыш сілтеме жа-
сайтын мəнді өзгертуге талпынбауы тиіс, əйтпесе программаның орындалу 
нəтижесі анықталмаған болып саналады. 
Мысал:
void print(int *p){ // Функция *p мəнін өзгертпейді
cout << *p;
}
const int *p;
...
/* print(p); Қате, өйткені p тұрақтыға нұсқауыш ретінде
жарияланған */
Программалаушы функцияның тұлғасында нұсқауыш сілтеме жасайтын 
мəн өзгермейтініне сенімді болған жағдайда ғана, 
const_cast
операциясы 
қолданылады. Əрине, формалды параметрдің сипаттамасына 
const
модифи-
каторын қосу мүмкіндігі болса, бұл əрекет функцияны шақыру кезінде типті 
түрлендіруді қолдануға қарағанда дұрысырақ болып саналады. 
dynamic_cast операциясы
Бұл операция иерархияның туыстас кластарының нұсқауыштарын, 
негізінен, базалық класс нұсқауышын туынды класс нұсқауышына түрлендіру 
үшін қолданылады, мұнда программаның орындалу барысында түрлендірудің 
жасалу мүмкіндігі тексеріледі.


251
Операция форматы:


Достарыңызбен бөлісу:
1   ...   222   223   224   225   226   227   228   229   ...   466




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

    Басты бет