1-mavzu topshiriqlari Ob’yekt va sinf o’rtasidagi bog’liqlikni tavsiflang. Sinflar qanday e’lon qilinadi? Ob’yektlar qanday e’lon qilinadi?
Sinf komponentalari sodda holda tiplangan ma’lumotlar va funksiyalardan iborat bo‘ladi. Figurali kavslarga olingan komponentalar ro‘yxati Sinf tanasi deb ataladi. Sinfga tegishli funksiyalar komponenta-funksiyalar yoki sinf funksiyalari deb ataladi.
Sinf - bu bizning dasturimizda foydalanishimiz mumkin bo'lgan foydalanuvchi belgilaydigan ma'lumot turi va u ob'ekt tuzuvchisi yoki ob'ektlarni yaratish uchun "reja" sifatida ishlaydi.
Konstruktorlar va funksiyalar o’rtasida qanday farqlar mavjud? Misollar orqali izoh bering.
Konstruktor klass bilan bir xil nomga ega, u doimo bo'ladi publicva u hech qanday qiymat qaytarmaydi.
Konstruktorlar parametrlarni (odatdagi funktsiyalar kabi) ham olishi mumkin, bu esa atributlar uchun boshlang'ich qiymatlarni belgilashda foydali bo'lishi mumkin
(To’rtburchak sinfi) To’g’ri to’rtburchakni tavsiflovchi To’rtburchak nomli sinf yarating. Sinf quyidagilardan iborat bo’lsin:
To’g’ri to’rtburchaning bo’yi va enini tavsiflash uchun ikkita double turida bo’yi va eni nomli maydonlar;
Barcha maydonlar uchun aksessor va mutetor funksiyalar;
To’rburchak yuzining qiymatini qaytaruvchi getArea() nomli funksiya;
Perimetrining qiymatini qaytaruvchi getPerimeter() nomli funksiya.
Sinfni (tanasini) implementatsiya qiling. To’rtburchak sinfida ikkita ob’yekt yaratib, test dastur yozing. Birinchi ob’yektda eni uchun 4, bo’yi uchun 40, ikkinchi ob’yektda esa eni uchun 3.5 va bo’yi uchun 35.9 qiymatlar berilsin. Ikkala ob’yektning ham xususiyatlarini hamda ularning yuzlari va perimatrlarini ekranga chiqaring.
“Jimlik qoidasiga ko’ra” ventilyatorning tezligini tezlik 1, on false va radius 5 qiymatlar orqali tavsiflovchi argumentsiz konstruktor;
Barcha maydonlar uchun aksessor va mutetor funksiyalar.
Sinfni implementatsiya qiling. Ventilyator sinfida ikkita ob’yekt yaratib, test dastur yozing. Birinchi ob’yekt quyidagi xususiyatlarga ega bo’lsin: tezlik 3, radius 10 va on true. Ikkinchi ob’yekt uchun: tezlik 2, radius 5 va on false. Ventilyatorning xususiyatlarini ekranga chiqarish uchun uning aksessor funksiyalarini chaqiring.
#include #include using namespace std;
class Ventilyator {
public:
int tezlik;
double raduis;
tezlik=3;
radius=10;
};
int main() {
Ventilyator myObj;
myObj.tezlik = 2;
myObj.radius = 5;
cout << myObj.tezlik << "\n";
cout << myObj.radius;
return 0;
}
(Nuqta sinfi) x va y koordinatalarni tavsiflovchi Nuqta nomli sinf yarating. Sinf quyidagilardan iborat:
Koordinatalrni tavsiflovchi x va y nomli maydonlar;
Ikki nuqta orasidagi masofani qaytaruvchi masofa nomli funksiya.
Sinfni implementatsiya qiling. (0, 0) va (10, 30.5) koordinatali ikki nuqtani hosil qiluvchi test dastur yozing. Nuqtalar orasidagi masofa ekranga chiqarilsin.
#include
#include using namespace std;
class Nuqta
{
public:
int x, y;
};
void get(int x, int y)
{
cout << x << " " << y << "\n";
}
void masofa(int x, int y)
{
cout << sqrt(x * x + y * y) << "\n";
}
int main()
{
Nuqta myObj;
myObj.x = 0;
myObj.y = 0;