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


enum {max = 32000};   // Вектордың максималды



Pdf көрінісі
бет341/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   337   338   339   340   341   342   343   344   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

      enum {max = 32000};   // Вектордың максималды 

                            // ұзындығы

      Vector(int n)          // Конструктор

         { if (n<0 || n>max) throw Size(); ... }

 

   ...

};

Vector

 класын қолдану кезінде 



Size

 типті аластамаларды айқындап 

атқаруды алдын ала қарастыруға болады. 

try{

   Vector *p = new Vector(i);

   ...

}

catch(Vector::Size){

    ... // Вектор өлшемінің қателігін өңдеу

}

Өңдеуіште қателік  жəне қалпына келтіру туралы хабарламалар берудің 

негізгі тəсілдерінің стандартты жиынтығы қолданылуы мүмкін. Аластаманы 

анықтайтын кластың ішінде аластама туралы өңдеуішке берілетін ақпарат 

сақталуы мүмкін. Бұл техниканың мəні – қателік туралы ақпаратты табылған 

нүктесінен қатені өңдеуге қажетті мүмкіндіктері бар жерге дейін жеткізуді 

қамтамасыз ету болып табылады.

Егер объектінің конструкторында аластама генерацияланатын болса, 

онда автоматты түрде осы блокта ағымдағы сəтке дейін толығымен құрылған 

объектілер үшін, сонымен қатар ағымдағы объектінің объектілер болып табы-

латын мəліметтер өрістері үшін жəне оның базалық кластары үшін деструктор-



248

лар шақырылады. Мысалы, егер аластама объектілердің жиымын құру кезінде 

пайда болса, деструкторлар тек сəтті құрылған элементтер үшін шақырылады.

Егер объект динамикалық жадыда 



new

 операциясының көмегімен 

құрылып, конструкторда аластама туындаған болса, онда объектіге бөлінген 

жады дұрыс босатылады.





Достарыңызбен бөлісу:
1   ...   337   338   339   340   341   342   343   344   ...   642




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

    Басты бет