Mavzu: Abstrakt sinflar tashkil etish va ulardan foydalanish


Download 122.66 Kb.
bet2/4
Sana03.12.2023
Hajmi122.66 Kb.
#1798038
1   2   3   4
Bog'liq
17mustaqil ish

virtual int open() = 0;
virtual int close(const char*) = 0;
virtual int read(const char*, int) = 0;
virtual int write(const char*, int) = 0;
virtual int ioctl(int ...) = 0; };

Drayvеrlar character_device sinfining ajdodlari sifatida kiritilishi mumkin.


Abstrakt sinflar va sof virtual funksiyalar


Sinflar, shu turga tegishli bo‘lgan obyektlarning o‘zaro bajaradigan amallari qoidalarini oldindan aniqlab berish uchun yaratilishi mumkin. Bunday sinflarga abstrakt sinflar deyiladi. Abstrakt sinflarning obyektlarini yaratib bo‘lmaydi. Ular faqat hosilaviy sinflarni yaratish uchun xizmat qiladi.
Abstrakt sinf kamida bitta virtual funksiyaga ega bo‘lishi kerak. Tayanch sinfning sof virtual funksiyalari hosilaviy sinflarda albatta aniqlanishi kerak, aks holda hosilaviy sinf ham virtual hisoblanadi.
Sof virtual funksiya quyidagi sintaksis bilan e’lon qilinadi:
virtual <funksiya nomi>(<parametrlar ro‘yxati>)=0;
Misol ko‘raylik. Faraz qilaylik, sinflar shajarisini yaratish zarur bo‘lsin va tayanch sinf umumiy funksional imkoniyatlarni ta’minlashi kerak. Lekin, tayanch sinfi shu darajada umumlashgan bo‘lib, natijada undagi ayrim funksiyalarni konkretlashtirish imkoni bo‘lmasligi mumkin. Bunday tayanch sinfi abstrakt sinf uchun eng yaxshi nomzod hisoblanadi:
Misol uchun jonivorlar shajarasini tavsiflovchi Jonivor abstrakt tayanch sinf va uning vorislari Kuchuk va Mushuk sinflarini e’lon qilishni ko‘raylik.
class Jonivor
{
public:
Jonivor(char * nomi)
{
Nomi=new char[15];
strcpy(Nomi,nomi);
};
virtual void Ovozi()=0;
virtual void Ozuqasi()=0;
protected:
char * Nomi;
};
class Kuchuk : public Jonivor
{
public:
Kuchuk(char * nomi):Jonivor(nomi){};

Download 122.66 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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