C++ sinflar/obyektlar
C++ sinflar/obyektlar
C++ — obyektga yo‘naltirilgan dasturlash tili.
C++ tilidagi hamma narsa sinflar va obyektlar, shuningdek ularning atributlari va metodlari bilan bog‘liq. Masalan, hayotda avtomobil — obyekt. Avtomobilning og‘irlik va rang kabi atributlari hamda haydash va tormozlash kabi metodlari bor.
Atributlar va metodlar — aslida sinfga tegishli o‘zgaruvchilar va funksiyalar. Ular ko‘pincha "sinf a’zolari" deb ataladi.
Sinf — dasturimizda foydalanishimiz mumkin bo‘lgan, foydalanuvchi tomonidan aniqlanadigan ma’lumot tipi bo‘lib, u obyekt konstruktori yoki obyektlar yaratish uchun "chizma" (blueprint) vazifasini bajaradi.
Sinf yaratish
Sinf yaratish uchun class kalit so‘zidan foydalaning:
Misol
"MyClass" nomli sinf yarating:
class MyClass { // The class
public: // Access specifier
int myNum; // Attribute (int variable)
string myString; // Attribute (string variable)
};
Misol izohi
classkalit so‘ziMyClassnomli sinf yaratish uchun ishlatiladi.publickalit so‘zi kirish spetsifikatori bo‘lib, sinf a’zolariga (atributlar va metodlarga) sinfdan tashqaridan murojaat qilish mumkinligini belgilaydi. Kirish spetsifikatorlari haqida keyinroq batafsil bilib olasiz.- Sinf ichida
myNumbutun son o‘zgaruvchisi vamyStringstring o‘zgaruvchisi bor. O‘zgaruvchilar sinf ichida e’lon qilinganda ular atributlar deb ataladi. - Oxirida sinf ta’rifini nuqtali vergul
;bilan yakunlang.
Obyekt yaratish
C++ tilida obyekt sinfdan yaratiladi. Biz MyClass nomli sinfni allaqachon yaratdik, endi undan obyektlar yaratish uchun foydalanishimiz mumkin.
MyClass obyektini yaratish uchun sinf nomini, undan keyin obyekt nomini ko‘rsating.
Sinf atributlariga (myNum va myString) murojaat qilish uchun obyektda nuqta sintaksisidan (.) foydalaning:
Misol
"myObj" nomli obyekt yarating va uning atributlariga murojaat qiling:
class MyClass { // The class
public: // Access specifier
int myNum; // Attribute (int variable)
string myString; // Attribute (string variable)
};
int main() {
MyClass myObj; // Create an object of MyClass
// Access attributes and set values
myObj.myNum = 15;
myObj.myString = "Some text";
// Print attribute values
cout << myObj.myNum << "\n";
cout << myObj.myString;
return 0;
}
O‘zingiz sinab ko‘ring »
Bir nechta obyekt
Bitta sinfdan bir nechta obyekt yaratishingiz mumkin:
Misol
// Create a Car class with some attributes
class Car {
public:
string brand;
string model;
int year;
};
int main() {
// Create an object of Car
Car carObj1;
carObj1.brand = "BMW";
carObj1.model = "X5";
carObj1.year = 1999;
// Create another object of Car
Car carObj2;
carObj2.brand = "Ford";
carObj2.model = "Mustang";
carObj2.year = 1969;
// Print attribute values
cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}
O‘zingiz sinab ko‘ring »
Topshiriq
Quyidagi atributlarga ega Book nomli sinf yarating:
title(string)author(string)year(int)
So‘ng shu sinfning ikkita obyektini yarating va ularning atribut qiymatlarini chiqaring.
Kutilgan natija
Matilda, Roald Dahl, 1988
The Giving Tree, Shel Silverstein, 1964
#include <iostream>
#include <string>
using namespace std;
class Book {
public:
string title;
string author;
int year;
};
int main() {
Book book1;
book1.title = "Matilda";
book1.author = "Roald Dahl";
book1.year = 1988;
Book book2;
book2.title = "The Giving Tree";
book2.author = "Shel Silverstein";
book2.year = 1964;
cout << book1.title << ", " << book1.author << ", " << book1.year << "\n";
cout << book2.title << ", " << book2.author << ", " << book2.year;
return 0;
}
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
