void show_computer(void);
private:
string name;
int hard_disk;
float floppy;
J«
computer::computer(string name, int hard_disk, float flopp>, string screen, long colors, int x_res, int y_res, int processor, int speed, int RAM): computer_screen(screen, colors, x_res, y_res), mother_ board(processor, speed, RAM)
{
computer::name = name;
computer ::hard_disk=hard_disk;
computer: :floppy = floppy;
}
void computer::show_computer(void)
!
cout « "Tur:" « name « endl;
cout « "Qattiq disk:" « hard disk « "MBavt" « endl; cout « "Yumshoq disk:" « floppy « "MBavt" « endl;' show_mother_board(); ’
show_screen();
}
int main()
{
computer mv_pc("Compaq", 212, 1.44, "SVGA",
16000000, 640, 480, 486, 66, 8); m>_pc-show_computer(); return 0;
}
Bu misolda computer sinfi konstruktori motherboard i computer screen konstruktorlarini chaqiriladi:
computer::computer(string name, int hard_disk, float floppy, string screen, long colors, int x res, int y_res, int processor, int speed, int RAM): computer_screen(screen, colors, x_res, v_res), mother board (processor, speed, RAM)
15.3.Polimorf usullar
Sinflarda polimorfizm. Polimorfizm yuqorida aytilganidek, vunoncha so z bo lib, ikkita o‘zakdan - poli (ko‘p) va morfos (shakl)dan iborat hamda ko'p shakllilikni bildiradi. Polimorfizm - bu turdosh obyektlar (ya’ni bitta ajdod hosilasi bo'lgan sinflarga mansub obvektlar)ning dastur bajarilish vaqtida vaziyatga qarab, o'zlarini turlicha tuta olish xususiyati. OMY doirasida dasturchi obyekt xulq-atvoriga faqat bilvosita ta’sir ko‘rsatishi, yam dasturga kiritilayotgan usullarni o'zgartirishi hamda avlodlarga o‘z ajdodlarida yo‘q bo'lgan o'ziga xos xususiyatlarni qo‘shishi mumkin.
Lsulni о zgartirish uchun uni avlodda qo'shimcha yuklash kerak, ya’ni avlodda bitta nomdagi usulni e'lon qilish va unda kerakli xatti-harakatlarni ishga solish kerak. Natijada ajdod-obyekt va avlod-obyektda bitta nomdagi ikkita usul amal qiladi. Bunda ushbu usullarning kodlari turlicha ishga tushiriladi va, demakki, obyektlar turlicha xatti-harakat ko‘rsatadi. Masalan, geometrik shakllar turdosh sinflarining tabaqalanishida (nuqta, to'g'ri chiziq, kvadrat, to‘g‘ri to‘rtburchak, doira. ellips va boshqalar) har bir sinf Draw usuliga ega bo'lib, u ushbu shaklni chizib berish talabi qo'yilgan voqea-hodisaga tegishli javob berilishi uchun mas'uldir.
Polimorfizm tufayli, avlodlar bitta voqeaga o‘ziga xos tarzda munosabat bildirishuchun, o‘z ajdodlarining umumiy usullarini qo’shimchayuklashlari mumkin.
Do'stlaringiz bilan baham: |