sinf va obyekt tushunchalari

DOCX 17 sahifa 42,4 KB Bepul yuklash

Sahifa ko'rinishi (5 sahifa)

Pastga aylantiring 👇
1 / 17
4-ma’ruza. sinf va obyekt tushunchalari. konstruktor va destruktor tushunchalari. sinfda o’zgaruvchi va metodlarni ko’rinish sohalari sinflar. c++ tilining eng foydali xususiyatlaridan biri bu muayyan muammolarni hal qilish uchun ko'proq mos keladigan ma'lumotlar turlarini aniqlashdir. o'zingizning shaxsiy ma'lumotlar turlarini yaratish uchun ro'yxatlar va tuzilmalardan qanday foydalanish mumkinligini allaqachon ko'rgansiz. masalan, sanani saqlash uchun struktura quyidagicha e’lon qilinadi. struct datestruct { int day; int month; int year; }; ro'yxatlar va strukturalar-bu an'anaviy (strukturali) dasturlash dunyosi, biz faqat ma'lumotlarni saqlashimiz mumkin. c++11 da biz shunday strukturani yaratishimiz va ishga tushirishimiz mumkin: datestruct today { 12, 11, 2018}; sanani ekranda ko'rsatish uchun (buni bir yoki ikki marta bajarish kerak bo'lishi mumkin), alohida funksiyani yozish yaxshi bo'lar edi, masalan: #include struct datestruct { int day; int month; int year; }; void print(datestruct &date) { std::cout class dateclass { public: int m_day; int m_month; int m_year; void print() { cout #include class employee { public: std::string …
2 / 17
a'zolari kirish huquqiga ega }; int main() { dateclass date; date.m_day = 12; // xato date.m_month = 11; // xato date.m_year = 2018; // xato return 0; } siz ushbu dasturni kompilyatsiya qila olmaysiz, chunki sinfning barcha a'zolari jimlik bo'yicha yopiqdir. yopiq a'zolar (yoki "private a'zolar") - faqat shu sinfning boshqa a'zolari kira oladigan sinf a'zolari. main() dateclass a'zosi bo'lmaganligi sababli, date obyekti shaxsiy a'zolariga kira olmaydi. sinf a'zolari jimlik bo'yicha yopiq bo'lsa-da, biz ularni public kalit so'z yordamida ochiq qilishimiz mumkin: class dateclass { public: // int m_day; // ochiq, har qanday ob'ekt kirish huquqiga ega int m_month; int m_year; }; int main() { dateclass date; date.m_day = 12; //xato emas, chunki m_dayda public kirish spetsifikatori mavjud date.m_month = 11; date.m_year = 2018; return 0; } dateclass a'zolari endi hamma uchun ochiq bo'lgani uchun ularga to'g'ridan -to'g'ri main() funksiyasidan kirish mumkin. public kalit so'z ikki nuqta bilan birgalikda kirish …
3 / 17
vate va public kirish xususiyatlarini ishlatadigan sinfning misolini ko'rib chiqaylik: #include class dateclass { int m_day; //jimlik bo’yicha yopiq int m_month; int m_year; public: void setdate(int day, int month, int year) // ochiq { // setdate () usuli sinfning yopiq a'zolaridan foydalana oladi, chunki u o'zi sinf a'zosi m_day = day; m_month = month; m_year = year; } void print() // ochiq, har qanday ob'ekt kirish huquqiga ega { std::cout class dateclass { int m_day; int m_month; int m_year; public: void setdate(int day, int month, int year) { m_day = day; m_month = month; m_year = year; } void print() { std::cout class fraction { private: int m_numerator; int m_denominator; public: fraction() // jimlik bo’yicha konstruktor { m_numerator = 0; m_denominator = 1; } int getnumerator() { return m_numerator; } int getdenominator() { return m_denominator; } double getvalue() { return static_cast (m_numerator) / m_denominator; } }; int main() { fraction …
4 / 17
lda). parametrli konstruktordan qanday foydalanish kerak? hammasi oddiy! to'g'ridan-to'g'ri initsializatsiya: int a(7); // to’g’ri-to’g’ri initsializatsiya fraction drob(4, 5); //to'g'ridan -to'g'ri ishga tushirilganda, fraction (int, int) konstruktori chaqiriladi bu yerda biz kasrni 4 va 5 raqamlari bilan initsializatsiya qildik, natija 4/5! c++11 da biz bir xil initsializatsiyadan foydalanishimiz mumkin: int a { 7 }; // uniform-initsializatsiya fraction drob {4, 5}; biz parametrli konstruktor uchun faqat bitta parametrni belgilashimiz mumkin, ikkinchi qiymat esa standart qiymat bo'ladi: fraction seven(7); konstruktorlar uchun standart qiymatlar boshqa funksiyalar bilan bir xil ishlaydi, shuning uchun yuqoridagi misolda seven(7) ni chaqirganimizda, ikkinchi parametr 1 (standart) bo'lgan fraction (int, int) chaqiriladi. konstruktorlar uchun standart qiymatlar boshqa funktsiyalar bilan bir xil ishlaydi, shuning uchun yuqoridagi misolda yetti (7) ni chaqirganimizda, ikkinchi parametr 1 (standart) bo'lgan fraction (int, int) chaqiriladi. qoida: sinflaringiz obyektlari bilan to'g'ridan-to'g'ri initsializatsiyalash yoki uniform-initsializatsiya foydalaning. initsializatsiyani nusxalash oddiy o'zgaruvchilar singari, sinflar ham nusxa ko'chirish yordamida ishga tushirilishi …
5 / 17
'rib chiqamiz. qoida: o'zingizning sinflaringiz ob'ektlari bilan nusxa ko'chirishni ishlatmang. konstruktorlar sonini kamaytirish fraksiya klassi va ikkita konstruktorli (standart va parametrli) misolda standart konstruktor aslida ortiqcha. biz bu sinfni shunday soddalashtira olamiz: #include class fraction { private: int m_numerator; int m_denominator; public: // jimlik bo’yicha konstruktor fraction(int numerator=0, int denominator=1) { assert(denominator != 0); m_numerator = numerator; m_denominator = denominator; } int getnumerator() { return m_numerator; } int getdenominator() { return m_denominator; } double getvalue() { return static_cast (m_numerator) / m_denominator; } }; garchi bu konstruktor hali ham standart konstruktor bo'lsa-da, u shunday aniqlanganki, u bir yoki ikkita foydalanuvchi tomonidan berilgan qiymatlarni olishi mumkin: fraction drob; // fraction(0, 1) chaqirish fraction seven(7); // fraction(7, 1) ni chaqirish fraction sixtwo(6, 2); // fraction(6, 2) chaqirish amalda, sinfingiz uchun konstruktorlar sonini kamaytirishga harakat qiling. oshkormas yaratilgan standart konstruktor agar sizning sinfingizda konstruktorlar bo'lmasa, c ++ avtomatik ravishda sinfingiz uchun umumiy standart konstruktorni …

Ko'proq o'qimoqchimisiz?

Barcha 17 sahifani Telegram orqali bepul yuklab oling.

To'liq faylni yuklab olish

"sinf va obyekt tushunchalari" haqida

4-ma’ruza. sinf va obyekt tushunchalari. konstruktor va destruktor tushunchalari. sinfda o’zgaruvchi va metodlarni ko’rinish sohalari sinflar. c++ tilining eng foydali xususiyatlaridan biri bu muayyan muammolarni hal qilish uchun ko'proq mos keladigan ma'lumotlar turlarini aniqlashdir. o'zingizning shaxsiy ma'lumotlar turlarini yaratish uchun ro'yxatlar va tuzilmalardan qanday foydalanish mumkinligini allaqachon ko'rgansiz. masalan, sanani saqlash uchun struktura quyidagicha e’lon qilinadi. struct datestruct { int day; int month; int year; }; ro'yxatlar va strukturalar-bu an'anaviy (strukturali) dasturlash dunyosi, biz faqat ma'lumotlarni saqlashimiz mumkin. c++11 da biz shunday strukturani yaratishimiz va ishga tushirishimiz mumkin: datestruct today { 12, 11, 2018}; sanani ekranda ko'rsat...

Bu fayl DOCX formatida 17 sahifadan iborat (42,4 KB). "sinf va obyekt tushunchalari"ni yuklab olish uchun chap tomondagi Telegram tugmasini bosing.

Teglar: sinf va obyekt tushunchalari DOCX 17 sahifa Bepul yuklash Telegram