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


unexpected  стандартты функциясының шақырылуына əкеліп соғады, ол, өз кезегінде,  келісім бойынша  terminate



Pdf көрінісі
бет221/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   217   218   219   220   221   222   223   224   ...   465
Байланысты:
аибм сплюс

unexpected 
стандартты функциясының шақырылуына əкеліп соғады, ол, өз кезегінде, 
келісім бойынша 
terminate
функциясын шақырады. 
set_unexpected
функциясының көмегімен 
terminate
функцияның орнына шақырылатын 
жəне көзделмеген аластама туындаған кездегі программаның əрекетін 
анықтайтын өзіндік функцияны тағайындауға болады. 
7.1-сурет.
Аластаманы өңдеу алгоритмі


247
terminate
функциясы келісім бойынша программаның орындалуын 
аяқтайтын 
abort 
функциясын шақырады. 
set_terminate
функциясының 
көмегімен 
abort
функциясының орнына шақырылып, программаны аяқтау 
тəсілін анықтайтын өзіндік (меншікті) функцияны тағайындауға болады. 
set_unexpected
жəне 
set_terminate
функциялары 

тақырыптық файлында сипатталған.
Конструкторлар мен деструкторлардағы аластамалар
C++ тілі конструктор мен деструктордан мəн қайтаруға жол бермейді. 
Аластамалар механизмі объектінің конструкторында немесе деструкторында 
туындаған қателік туралы хабарлауға мүмкіндік береді. Осыны көрнекі түрде 
көрсету үшін қажетті жады көлемі шектелетін 
Vector
класын құрайық.
class Vector{ 
public:
class Size{}; // Аластама класы
enum {max = 32000}; // Вектордың максималды 
// ұзындығы
Vector(int n) // Конструктор
{ if (n<0 || n>max) throw Size(); ... }
 
...
};
Vector
класын қолдану кезінде 
Size
типті аластамаларды айқындап 
атқаруды алдын ала қарастыруға болады. 
try{
Vector *p = new Vector(i);


Достарыңызбен бөлісу:
1   ...   217   218   219   220   221   222   223   224   ...   465




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

    Басты бет