Raqamli texnologiyalar fakulteti dasturiy injiniring yo’nalishi



Download 1,57 Mb.
bet42/81
Sana23.06.2022
Hajmi1,57 Mb.
#695199
1   ...   38   39   40   41   42   43   44   45   ...   81
Bog'liq
Dasturiy injiniring Dasturlash 2-4

3-misol. Figure (Shakllar) nomli abstrakt sinfni hosil qiling. Uning tarkibida yuzani va perimetrni hisoblaydigan, shakl turini chiqaradigan metodlar hosil qiling. Bu metodlardan Rectangle (To’g’ri to’rtburchak), Circle(Doira) sinflarida foydalaning.

#include using namespace std; class Figure


{ public:
virtual double getSquare() =0; virtual double getPerimeter() =0; virtual void showFigureType()=0;
};
class Rectangle : public Figure {
private:
double width; double height;
public:
Rectangle(double w, double h)
{
width = w; height = h;
}
double getSquare() {
return width * height; }
double getPerimeter() {
return width * 2 + height * 2; }
void showFigureType() {
cout << "To'g'ri to'rtburchak" << endl; }
};
class Circle : public Figure {
private:
double radius; public:
Circle(double r) {
radius = r; }
double getSquare() {
return radius * radius * 3.14; }
double getPerimeter() {
return 2 * 3.14 * radius; }
void showFigureType() {
cout << "Doira" << endl; }
};

int main() {


Rectangle rect(30, 50); Circle circle(30);

cout << "To'g'ri to'rtburchak yuzi: " << rect.getSquare() << endl; cout << "Doira yuzasi: " << circle.getSquare() << endl;

return 0; }


18-19-20-AMALIY MASHG’ULOT. PARAMETRLANGAN SINFLARGA KIRISH. PARAMETRLANGAN SINFLAR VA METODLAR, ULARNING XUSUSIYATLARI. PARAMETRIZATSIYA VA VORISLIK TAMOYILLARINI XAMKORLIKDA QO’LLASH



1-misol. Funksiya shablonlarini yaratish.
Shablon parametrlari deklaratsiyasini batafsil ko'rib chiqaylik:

  • Birinchidan, biz shablon kalit so'zini yozamiz, bu esa kompilyatorga keyin shablon parametrlarini e'lon qilishimizni aytadi.

  • Funksiya shablonining parametrlari burchakli qavslarda (<>) ko'rsatilgan.




  • Typename va class kalit so'zlari shablon parametr turlarini yaratish uchun ishlatiladi. Funksiya shablonlari uchun asosiy foydalanish holatlarida tip nomi va sinf o'rtasida farq yo'q, shuning uchun ikkalasidan birini tanlashingiz mumkin. Agar siz class kalit so'zidan foydalansangiz, u holda parametrlarning haqiqiy turi sinf bo'lishi shart emas (bu asosiy ma'lumotlar turining o'zgaruvchisi, ko'rsatgich yoki boshqa narsa bo'lishi mumkin).

  • Keyin shablon parametrining turini nomlaymiz (odatda T).

Agar shablon parametrlarining bir nechta turlari kerak bo'lsa, ular vergul bilan ajratiladi:

template


// Funksiya shabloni bu yerda

Agar bir nechta parametrlar mavjud bo'lsa, ular odatda T1, T2 yoki boshqa harflar deb ataladi: T, S.


Eslatma: T turiga o'tkaziladigan funksiya argumentining turi sinf bo'lishi mumkinligi sababli va sinflar odatda qiymat bo'yicha o'tkazilishi tavsiya etilmaganligi sababli, bizning funksiya shablonimiz parametrlari va qaytish qiymatini doimiy havolalar qilish yaxshiroqdir.
#include
using namespace std;
template
const T& max1(const T& a, const T& b)
{
return (a > b) ? a : b;
}
int main()
{
int i = max1(4, 8);
cout << i << '\n';
double d = max1(7.56, 21.434);
cout << d << '\n';
char ch = max1('b', '9');
cout << ch << '\n';
return 0;
}

Download 1,57 Mb.

Do'stlaringiz bilan baham:
1   ...   38   39   40   41   42   43   44   45   ...   81




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish