C++ sinflar/obyektlar


ULASHISH

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

  • class kalit so‘zi MyClass nomli sinf yaratish uchun ishlatiladi.
  • public kalit 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 myNum butun son o‘zgaruvchisi va myString string 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!