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



Pdf көрінісі
бет350/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   346   347   348   349   350   351   352   353   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

Жоғарылататын түрлендіру

Жоғарылататын түрлендіруді 



dynamic_cast

 операциясы арқылы орындау 

қарапайым меншіктеумен (ашық мұралау кезінде) бірдей болып саналады:

class В{ /* ... */ };

class С: public В{ /* ... */ };

С* с = new С;

В* b = dynamic_cast(c);  // В* b = с 

э

квивалентті;

Төмендететін түрлендіру

dynamic_cast

 операциясы көбінесе төмендететін түрлендіруде – 

компилятордың түрлендіру дұрыстығын тексеру мүмкіндігі болмаған кезде 

қолданылады.

Туынды кластар құрамында базалық кластарда жоқ функциялар болуы 

мүмкін. Оларды базалық кластың нұсқауышы арқылы шақыру үшін осы 

нұсқауыштың расында да туынды кластың объектісіне сілтеме жасайты-

нына сенімді болу керек. Мұндай тексеру 



RTTI

 (run-time type information) 

– «программаның атқарылуы кезіндегі тип туралы ақпарат» арқылы типті 

келтіруді жүзеге асыру сəтінде орындалады. Түрлендіруді тексеру мүмкіндігі 

орындалуы үшін 

dynamic_cast

 операциясының аргументі полиморфты тип-

те болуы тиіс, яғни оның кем дегенде бір виртуалды  əдісі (222 б. қараңыз) 

болуы керек.

1

Егер өрнек нөлге тең болса, оның нəтижесі де нөлге тең болады.




252



Достарыңызбен бөлісу:
1   ...   346   347   348   349   350   351   352   353   ...   642




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

    Басты бет