Читайте также:
|
|
Класс құру негізінде, оған байланысты ерекше жағдайларды анықтау қажет. Нақты класқа ерекше жағдайды құру үшін, оны жалпы (public) кластын элементтерінің біреуне осы ерекше жағдайды қосу керек. Мысалы, string кластын сипаттамасы екі ерекше жағдайды анықтайды:
class string
{
public:
string(char *str);
void fill_string(*str);
void show_string(void);
int string_length(void);
class string_empty { };
class string_overflow {};
private:
int length;
char string[255];
};
Көрсетілгендей, string_empty және string_overflow ерекше жағдайларды класс class string анықтайды. Төменде келтірілген кодта, ерекше жағдай бар екенін тексеру үшін глобальды рұқсаттын операторын және кластың атын қолдану керек:
try
{
some_string.fill_string(some_long_string);
};
catch (string::string_overflow)
{
cerr << "Жолдың ұзындығы асып кетті,символдардар алынып тасталды" << endl;
}
Ерекше жағдайлар программаларда қателік жағдайларды іздеуді жеңілдету және өңдеу үшін арналған. Ерекше жағдайларды тексеру және іздеу үшін try, catch және throw операторларды қолдану қажет.
Негізгі әдебиет: 1 [151-156], 2[703-736]
Бақылау сұрақтары:
1. Ерекше жағдайлар деген не?
2.Try оператордын міндетті?
3. Ерекше жағдайды генерациялау үшін қандай әрекеттер орындалады?
4. Ерекше жағдайлардын өңдеуштің міндетті неде?
5. Ерекше жағдайлардын өңдеуштің мысалын келтіріңіз.
14-дәріс. ОБП: класстар және абстракциялау.
Объектілі-бағытталған программалау нақты әлемдегі объектілерді олардың программалық эквиваленттер көмегімен моделдейді.
Кластар программистке атрибуттарды (мәліметтер элементтер түрінде берілген) және нақты әрекеттері (функция-элементтері түрінде берілген) бар объектілерді моделдеуге мүмкіндік береді. Бір кластың объектілері бірдей сипаттамаларға ие болады. Мәліметтер элементтері және функция-элементтері бар типтерді анықтағанда әдетте class түйінді сөзі қолданылады.
Конструктор. Функция-элементі класс атымен аталса, онда ол осы кластың конструкторы деп аталады Конструктор - бұл класс объектісінің мәліметтер элементтерін инициалдайтын кластың арнайы функция-элементі. Кластың конструкторы объекті құрылатын кезде автоматты түрде шақырылады.Объекті құрылғаннан кейін оның элементтері конструктордың көмегімен инициалдануы мүмкін. Мәліметтер элементтері кластың анықтауында инициалдануы мүмкін емес. Мәліметтер элементтері не кластың конструкторында инициалдануы керек, не олардың мәні объекті құрылғаннан кейін орнатылуы мүмкін. Конструктор қайтарылатын мәннің типін белгілей алмайды, бірақ қайсібір мәнді қайтарады. Кластың объектісін баяндағанда оның атының оң жағыман дөңгелек шақшадағы үтірі бар нүктеге дейін инициализаторлар берілуі мүмкін. Бұл инициализаторлар кластың конструкторына аргумент ретінде беріледі.
Деструктор. Кластың атымен бірдей атты, алдында тильда (~) символы бар функция кластың деструкторы деп аталады. Кластың объекті әрекет облысынан шыққанда кластың деструкторы автоматты түрде шақырылады. Деструктордың өзі объетіні нақтылы бұзбайды, іс жүзінде оған бөлінген жады жүйеге қайтару алдында кластың әрбір объектінің қорытынды тазалауын орындайды. Деструктор параметрлерді қабылдамайды және мәнді қайтармайды. Класта тек бір ғана деструктор болуы мүмкін.
Ескерту. С++ тілінде класстардын атаулары С әріпінен басталады.
Негізгі әдебиет: 1 [140-156], 2[405-458], 3[257-277]
Бақылау сұрақтары:
1. Объектілі бағытталған программалау процедурлік программалаудан айырмашылығы неден турады?
2. Объект деген не?
3. Әдіс деген не?
4. Класс деген не?
5. Класс объектіден айырмашылығы неде?
Дата добавления: 2015-07-08; просмотров: 753 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ерекше жағдайдың өңдеуішті анықтау | | | Дәріс. ОБП: мұрагерлік, визуалды функциялар және полиморфизм |