• Konstruktorlar sonini kamaytirish.
  • 5-ma’ruza. Konstruktorlar va destruktorlar. A’zo o’zgaruvchilarni initsializatsiyalash




    Download 321.25 Kb.
    Pdf ko'rish
    bet3/4
    Sana10.04.2023
    Hajmi321.25 Kb.
    #50126
    1   2   3   4
    Bog'liq
    konstruktor
    3-topshiriq cisco, 17 mayga referat, aaa, №1-Mustaqil ish TTS21-01 A-B-g (1)
    Initsializatsiyani nusxalash. Oddiy o‘zgaruvchilar singari, sinflar 
    ham nusxa ko‘chirish yordamida initsializatsiya qilinishi mumkin: 
    int a = 7; // nusxa ko‘chirishni boshlash 
    Fraction eight = Fraction(8); // nusxa ko‘chirish boshlanishi, Fraction 
    (8, 1) chaqiriladi 
    Fraction nine = 9; // nusxa ko‘chirishni boshlash. Kompilyator 9 ni 
    Fraktsiyaga o‘tkazish metodlarini qidiradi, natijada Fraction (9, 1) 
    konstruktoriga murojaat bo‘ladi. 
    Shu bilan birga, sinfni initsializatsiyalashning bu shaklidan qochish 
    tavsiya etiladi, chunki bu unchalik samarasiz bo‘lishi mumkin. Bir xil 
    boshlang‘ich, to‘g‘ridan-to‘g‘ri initsializatsiyalash va nusxa ko‘chirish 
    boshlang‘ich ma'lumotlarning asosiy turlari bilan bir xil bo‘lsa-da, bu 
    sinflarga umuman to‘g‘ri kelmaydi (garchi yakuniy natija ko‘pincha bir xil 
    bo‘ladi). Bu masalani keyingi darslarda batafsil ko‘rib chiqamiz. 
    Konstruktorlar sonini kamaytirish. Fraction sinfi 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 (double) 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, sinf uchun konstruktorlar sonini kamaytirishga harakat qilish 
    lozim. 

    Download 321.25 Kb.
    1   2   3   4




    Download 321.25 Kb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    5-ma’ruza. Konstruktorlar va destruktorlar. A’zo o’zgaruvchilarni initsializatsiyalash

    Download 321.25 Kb.
    Pdf ko'rish