Konstruktorlar va kuzda tutilgan qiymatlar

|
Konstruktorlar va kuzda tutilgan qiymatlar
|
bet | 71/89 | Sana | 16.11.2023 | Hajmi | 313,45 Kb. | | #100010 |
Bog'liq @AKT Official C haqida o\'zbekcha darslar majmuiKonstruktorlar va kuzda tutilgan qiymatlar
Konstruktorlarda kuzda tutilgan qiymatlardan ham foydalanish mumkindir. Misol uchun qo’yidagi konstruktor employee oklad qiymatini dasturda ko’rsatilmagan bo’lsa 10000.0 teng qilib oladi.:
employee::employee(char *name, long employee_id, float salary = 10000.00)
{
strcpy(employee::name, name);
employee::employee_id = employee_id;
if (salary < 50000.0)
employee::salary = salary;
else // Nedopustimihy oklad
employee::salary = 0.0;
Destruktorlar
Sinfning biror ob'ekti uchun ajratilgan hotira ob'ekt yo’qotilgandan so’ng bo’shatilishi lozimdir. Sinflarning mahsus komponentalari destruktorlar, bu vazifani avtomatik bajarish imkonini yaratadi.
Destruktorni standart shakli qo’yidagicha :
~ sinf_nomi ( ) {destruktor tanasi}
Destruktor parametri yoki qaytariluvchi qiymatga ega bo’lishi mumkin emas. (hatto void tipidagi)
70 - DARS. STATIK ELEMENTLAR. SINF STATIK KOMPANENTALARI .
Sinf kompleks ob'ektlari uchun umumiy bo’lgan elementlar statik elementlar deb ataladi. Yangi ob'ektlar yaratilganda statik elementlarga murojat qilish uchun oldin inizializatsiya qilinishi lozim. Inizializatsiya qo’yidagicha amalga oshiriladi:
Sinf-nomi:: kompleks-nomi initsializator
Misol uchun skladdagi tovarni kompleks tasvirlovchi sinfni kurib chiqamiz. Bu sinf komponentalari qo’yidagilardan iborat:
- Tovar nomi
- Olish narhi
- Kushimcha narh foiz ko’rinishida
- Tovar haqida ma'lumotlar kiritish funktsiyasi
- Tovar haqida ma'lumotlar va Tovar narhini chiqaruvchi funktsiya;
Sinf ta'rifi :
Goods. Cpp
#include
Struct goods
{ char name [40];
float price;
Static int percent;
Void input()
{cout <<” Tovar nomi:”; cin>>name;
cout<<” Tovar narhi:”;cin>>price;
}
Har bir yangi ob'ektning kompanentalari faqat shu ob'ektga tegishli bo’ladi . Sinf kompanentasi yagona bo’lib va hamma yaratilgan ob'ektlar uchun umumiy bo’lishi uchun uni statik element sifatida ta'riflash ya'ni Static atributi orqali ta'riflash lozimdir . S sharning statik kompanentalarini inizializatsiya qilishdan so’ng dasturda ob'ektlarni kiritmasdan oldin ishlatish mumkin. Agar kompanenta private yoki protected sifatida ta'riflangan bo’lsa unga kompanenti funktsiya yordamida murojat qilish mumkin. Lekin kompaneta funktsiyaning chaqirish uchun biror ob'ekt nomini ko’rsatish lozim. Lekin statik kompanentaga murojat qilinayotgan birorta ob'ekt yaratilmagan bo’lishi yoki bir nechta ob'ektlar yaratilgan bo’lishi mumkin shuning uchun sinf statik elemntlariga ob'ekt nomini ko’rsatmasdan murojat qilish imkoniyatiga ega. Bunday imkoniyatni statik kompanenta funktsiyalar yaratadi. Statik kompanenta funktsiyaga ob'ekt nomi yoki obe'ktga ko’rsatkich orqali murojaat qilish mumkin . Shu bilan birga nomi orqali qo’ydagicha murojaat qilish mumkin.
Sinf - nomi : Statik – funktsiya –nomi
Qo’yidagi dasturda point sinfi uch o’lchovli fazodagi nuqtani aniqlaydi va shu bilan birga o’z ichiga shu nuqtalar sonini oladi.
# include
clearr point 3
{double x,y,z;
static int N;
public
point 3 (double xu=0.o,double yu=0.o, double zu=0.o)
{N + +; x=xn; y=yn; z=zn; }
static int & count ( ) {return N; }
};
int point 3: :N=0;
void main (void)
{cout < <”\ n size of ( point 3)=” < < size of (point 3) ;
point 3 A (0: 0, 1. 0, 2. 0);
cout < < “ \ nsize of (A)=”< < size of (A)
point 3 B (3.0, 4.0, 5.0)
|
| |