Statik elementlar hamda funksiyalar




Download 5,48 Mb.
Pdf ko'rish
bet16/53
Sana21.11.2023
Hajmi5,48 Mb.
#102807
1   ...   12   13   14   15   16   17   18   19   ...   53
Bog'liq
Texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi

Statik elementlar hamda funksiyalar 
Shu paytgacha, har bir yaratilgan element o‘zining xususiy ma’lumotlar 
elementiga ega bo’lar edi. Lekin, shunday holat bo’ladiki, bitta sinf doirasidagi 
obyektlarning ba’zi elementlari o‘zaro bog’langan bo’ladi. Masalan, ish vaqti bir xil 
bo’lgan 1000 ta ishchining oylik maoshini hisoblaydigan dastur tuzish taklif 
qilinayotgan bo’lsin. Soliq stavkasini aniqlash uchun dastur har bir ishchining 
sharoitini bilishi kerak. Buning uchun aytaylik, state_of_employee nomli sinfdan 
foydalanamiz. Agar, ishchilar bir xil sharoitda ishlasa, demak, dastur barcha 
employee tipidagi obyektlar uchun (barcha ishchilar uchun) ushbu elementlardan 
o’zaro moslikda foydalanadi. Ushbu holatda dastur, bitta axborotning 999 ta 
nusxasidan foydalanish bilan xotiradan foydalanish hajmini kamaytiradi. 
Sinfning elementidan o’zaro moslikda foydalanish uchun, ushbu element static 
(statik) deb e’lon qilinishi zarur. Agar, dastur ushbu elementga yangi qiymat 
o’zlashtirsa, hamma obyekt elementi ushbu yangi qiymatni qabul qiladi. Sinf 


28 
elementi static deb e’lon qilinganidan so’ng, u umumiy (global) o’zgaruvchi sifatida 
e’lon qilinishi zarur. 
#include

//strcpy() uchun 
#include

//printf() uchun 
#include

//_getch() uchun 
using
namespace
std;
class
book_series
{
public
:
book_series(
char
*, 
char
*, 
float
);
void
show_book(
void
);
void
set_pages(
int
);
private
:
static
int
page_count; 
//bu umumiy element hisoblanadi
char
title[64];
char
author[64];
float
price;
};
int
book_series
::page_count; 
//sinfdan tashqarida umumiy o`zgaruvchini e`lon qilish
void
book_series
::set_pages(
int
pages
)
{
page_count = 
pages
;
}
book_series
::book_series(
char
*
title

char
*
author

float
price

//Sinfning konstruktori
{
strcpy(
book_series
::title, 
title
); 
/*string sinfiga ulanish uchun zarur bo`lgan, strcpy() 
funksiyasi*/
strcpy(
book_series
::author, 
author
);
book_series
::price = 
price
;
}
void
book_series
:: show_book (
void
)


29 
{
printf(
"Sarlavha: %s\n"
,title);
printf(
"Muallif:%s\n"
,author);
printf(
"Narx: %.2f\n"
,price);
printf(
"Sahifalar: %d\n"
,page_count);
}
void
main()
{
book_series
programming(
"Studiing C++"

"Author1"
, 22.95);
//programming obyektini konstruktor yordamida yaratish
book_series
word( 
"Studiing to work with Word for Windows 7"

"Author2"
, 19.95);
//word obyektini konstruktor yordamida yaratish
word.set_pages(256); 
/*Word obyektining sahifalari soni beriladi, bu 
programmingga ham ta'sir qiladi*/
programming.show_book ();
word.show_book() ;
programming.set_pages(512); 
//page_countni o`zgartirish 
programming.show_book(); 
//obyekt ma`lumotlarini ekranga chiqarish
//programming 
word.show_book(); 
//obyekt ma`lumotlarini ekranga chiqarish
//word 
_getch();
}

Download 5,48 Mb.
1   ...   12   13   14   15   16   17   18   19   ...   53




Download 5,48 Mb.
Pdf ko'rish