Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ерекше жағдайлар және класстар

Читайте также:
  1. Aуіпсіздік және еңбекті қорғaу бөлімі
  2. XIV-XVII ғасырлардағы Қазақстанның мәдениеті және әлеуметтік-экономикалық жағдайы
  3. А)Өндіріс алаңы және оның тегістеу жұмыстары
  4. Абынудың жасушалық және гуморалдық медиаторларының пайда болу және әсер ету жолдары
  5. Азаматгық қоғам және құқықтық мемлекет
  6. Антидиуреттік гормон, альдостерон және ренин-ангиотензиндік жүйенің, натрий-уретикалық фактордың қызметі.
  7. аржы, ақша айналымы және несие » пәнінен емтихан сұрақтары

Класс құру негізінде, оған байланысты ерекше жағдайларды анықтау қажет. Нақты класқа ерекше жағдайды құру үшін, оны жалпы (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 | Нарушение авторских прав


Читайте в этой же книге: Келтіру операторлары | Дәріс. Циклдар - басқару операторлар | Дәріс. Массивтер. Бірөлшемді және екіөлшемді массивтерді өңдеуге арналған программаларды құру | Көрсеткішті сипаттау | Дәріс. Массивтер және көрсеткіштер | Ші дәріс. Символдық жолдар және қолданылатын функциялар | Жолдарға қолданылатын операциялардың функциялары | Дәріс. Құрылымдар және мәліметтердің басқа формалары. | Дәріс. Файлдық енгізу-шығару. | Параметр Режим |
<== предыдущая страница | следующая страница ==>
Ерекше жағдайдың өңдеуішті анықтау| Дәріс. ОБП: мұрагерлік, визуалды функциялар және полиморфизм

mybiblioteka.su - 2015-2024 год. (0.006 сек.)