1-ma’ruza C++ da Sinflar va obyektlar. Konstruktor va destruktor. Sinf usullari reja


Download 86.61 Kb.
bet21/23
Sana09.06.2023
Hajmi86.61 Kb.
#1472539
1   ...   15   16   17   18   19   20   21   22   23
Bog'liq
Algoritmlashga kirish fanidan majmua

5.7. Istisnolar va konstruktorlar
Istisnolar konstruktordagi xatolar xaqida ma’lumot berishga imkon beradi. Konstruktor chaqiruvchi funksiya tekshirib ko‘rishi mumkin bo‘lgan qiymat qaytarmagani uchun istisnolarsiz quyidagicha xatolik xaqida ma’lumot berish mumkin:
1. Obyektni xatolik bilan qaytarish toki foydalanuvchi o‘zi tekshirib ko‘rsin.
2. Lokal bo‘lmagan o‘zgaruvchiga obyekt yaratilmagani xaqida ma’lumot beruvchi qiymat o‘rnatish.
Istisnolar obyekt yaratilmagani xaqidagi ma’lumotni tashqariga uzatishga imkon beradi:
Vector::Vector(int size)
{
if (sz<0 || max// ...
104
}
Vektor yaratilayotgan funksiyada noto‘g‘ri o‘lcham (Size()) xatoligini qayta ishlash mumkin:
Vector* f(int i)
{
Vector* p;
try {
p = new Vector v(i);
}
catch (Vector::Size) {
// vektor noto‘qri o‘lchami
}
// ...
return p;
}
Nazorat uchun savollar
1. Istisnolarni nima uchun generatsiya va qayta ishlash kerak?
2. Istisno generatsiyasi sintaksisini keltiring.
3. Istisnoni qayta ishlash sintaksisini keltiring.
4. Istisnolar bilan qanday operatorlar bog‘liq?
5. Istisnoni generatsiya qiluvchi funksiya sintaksisini keltiring.
6-ma’ruza Konteynerlar. Ketma-ket va assosiativ konteyner.
REJA:

  1. Asosiy konteynerlar.

  2. Ketma –ket va assosiativ konteynerlar.

Asosiy konteynerlar Biblioteka yadrosi uchta elementdan iborat: konteynerlar, algoritmlar va iteratorlar. Konteynerlar (containers) – bu boshqa elementlarni saqlovchi obyektlar. Masalan, vektor, chiziqli ro‘yxat, to‘plam. Assotsiativ konteynerlar (associative containers) kalitlar yordamida ularda saqlanadigan qiymatlarni tezkor olish imkonini yaratadi. Har bir sinf – konteynerida ular bilan ishlash uchun mo‘ljallangan funksiyalar to‘plami aniqlangan. Masalan, ruyxat elementlarni kiritish, chiqarish, va qo‘shish funksiyalarni o‘z ichiga oladi.


Algoritmlar (algorithms) konteyner ichidagilar ustidan operatsiyalar bajaradi. Konteyner ichidagilarni initsializatsiyalash, qidirish, saralash va almashtirish uchun algoritmlar mavjud. Ko‘p algoritmlar konteyner ichidagi elementlarni chiziqi ro‘yxatini ifodalaydovchi ketma-ketlik (sequence) bilan ishlash uchun mo‘ljallangan. Iteratorlar (iterators) – bu konteynerga nisbatan ko‘rsatkich sifatida bo‘lgan obyektlar. Ular massiv elementlariga ruxsat oluvchi ko‘rsatkichlar kabi, konteyner ichidagiga ruxsat olish imkoni beradi.
vector dinamk massiv
list chiziqli ro‘yxat
deque ikki tarafli dvustoronnyaya tartib
set to‘plam
multiset har bir elementi noyob bo‘lishi shart emas to‘plam
map kalit/ qiymat juftlikni saqlash uchun assotsiativ ro‘yxat.
Bunda har bir kalit bitta qiymat bilan bog‘langan.
multimap har bir kalit bilan ikkita yoki ko‘proq qiymatlar bog‘langan stack stek queue tartib priority_queue birinchi o‘rindagi tartib.
STL – (Standart Template Library) C++ dasturlash tilida turli xil ma’lumotlar
tuzilmalari va funksiyalari ya’ni ro’yxatlar, steklar va massivlar kabi tuzilmalar bilan
ishlash uchun qulay hisoblanadigan shablon sinflar to’plamidir. STL – konteyner sinflar kutubxonasi, algoritmlar va iteratorlardan iborat.
STL tarkibi 4 ta asosiy komponentga ega:
- Algoritmlar
- Konteynerlar
- Funksiyalar
- Iteratorlar
Algoritmlar - elementlar diapazonlarida foydalanish uchun mo'ljallangan funksiyalar to'plamini belgilaydi. Ular konteynerlarda ishlaydi va konteynerlar mazmuni uchun turli operatsiyalarni bajaradi hamda ular turli xildagi vositalarni taqdim etadi.

Download 86.61 Kb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   23




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling