Класи та об'єкти C ++

У цьому підручнику ми дізнаємося про об'єкти та класи та як використовувати їх у C ++ за допомогою прикладів.

У попередніх підручниках ми дізналися про функції та змінні. Іноді бажано розмістити пов’язані функції та дані в одному місці, щоб було логічно та легше працювати з ними.

Припустимо, нам потрібно зберегти довжину, ширину та висоту прямокутної кімнати та розрахувати її площу та об’єм.

Для вирішення цього завдання ми можемо створити три змінні, скажімо, довжина, ширина та висота разом із функціями calculateArea()та calculateVolume().

Однак у C ++ замість створення окремих змінних та функцій ми можемо також обернути ці пов'язані дані та функції в одному місці (шляхом створення об'єктів ). Ця парадигма програмування відома як об’єктно-орієнтоване програмування.
Але перш ніж ми зможемо створювати об'єкти та використовувати їх у C ++, нам спочатку потрібно дізнатися про класи .

Клас С ++

Клас - це проект об'єкта.
Ми можемо сприймати клас як ескіз (прототип) будинку. Він містить усі подробиці про підлоги, двері, вікна тощо. На основі цих описів ми будуємо будинок. Будинок - це об’єкт.

Створіть клас

Клас визначається в C ++ за допомогою ключового слова, classза яким слідує ім'я класу.

Тіло класу визначається всередині фігурних дужок і закінчується крапкою з комою в кінці.

 class className ( // some data // some functions );

Наприклад,

 class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );

Тут ми визначили клас з іменем Room.

Змінні довжина, ширина та висота, оголошені всередині класу, відомі як члени даних . І, функції calculateArea()і calculateVolume()відомі як функції-члени класу.

Об'єкти C ++

Коли визначено клас, визначається лише специфікація об’єкта; не виділяється пам’ять або пам’ять.

Щоб використовувати функції даних та доступу, визначені в класі, нам потрібно створити об’єкти.

Синтаксис для визначення об’єкта в C ++

 className objectVariableName;

Ми можемо створити об'єкти Roomкласу (визначені у наведеному вище прикладі) наступним чином:

 // sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )

Тут Roomстворено два об’єкти room1 та room2 класу sampleFunction(). Подібним чином об'єкти room3 і room4 створюються в main().

Як ми бачимо, ми можемо створювати об'єкти класу в будь-якій функції програми. Ми також можемо створювати об'єкти класу як у самому класі, так і в інших класах.

Крім того, ми можемо створити скільки завгодно об’єктів з одного класу.

Члени доступу до даних C ++ та функції членів

Ми можемо отримати доступ до членів даних та функцій-членів класу, використовуючи .оператор (крапка). Наприклад,

 room2.calculateArea();

Це викличе calculateArea()функцію всередині Roomкласу для об’єкта room2.

Аналогічним чином члени даних можуть бути доступні як:

 room1.length = 5.5;

У цьому випадку він ініціалізує змінну довжини room1 до 5.5.

Приклад 1: Об'єкт і клас у програмуванні на C ++

 // Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

Вихідні дані

 Area of Room = 1309 Volume of Room = 25132.8

In this program, we have used the Room class and its object room1 to calculate the area and volume of a room.

In main(), we assigned the values of length, breadth, and height with the code:

 room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;

We then called the functions calculateArea() and calculateVolume() to perform the necessary calculations.

Note the use of the keyword public in the program. This means the members are public and can be accessed anywhere from the program.

As per our needs, we can also create private members using the private keyword. The private members of a class can only be accessed from within the class. For example,

 class Test ( private:
  int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.

On the other hand, b and function2() are accessible from everywhere in the program.

Щоб дізнатись більше про загальнодоступні та приватні ключові слова, відвідайте наш посібник із модифікаторів доступу до класу C ++.

Приклад 2: Використання загальнодоступного та приватного в класі C ++

 // Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

Вихідні дані

 Площа кімнати = 1309 Обсяг кімнати = 25132,8

Наведений приклад майже ідентичний першому прикладу, за винятком того, що змінні класу тепер приватні.

Оскільки змінні зараз приватні, ми не можемо отримати до них доступ безпосередньо main(). Отже, використання наступного коду буде недійсним:

 // invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;

Замість цього ми використовуємо державні функції getData()для ініціалізації приватних змінних з допомогою параметрів функції double len, double brthі double hgt.

Щоб дізнатись більше про об’єкти та класи, відвідайте такі теми:

  • Конструктори C ++
  • Як передати та повернути об’єкт із функції?

Цікаві статті...