Клас та об'єкт С ++ із прикладом

Зміст:

Anonim

Що таке клас?

Клас С ++ поєднує дані та методи обробки даних в одне ціле. Заняття також визначають форми предметів. Дані та методи, що містяться в класі, відомі як члени класу. Клас - це визначений користувачем тип даних. Для доступу до учасників класу ми використовуємо екземпляр класу. Ви можете розглядати клас як схему об’єкта.

Клас може бути прототипом для будинку. Він показує розташування та розміри дверей, вікон, підлоги тощо. З цих описів ми можемо побудувати будинок. Будинок стає об’єктом. З прототипу можна створити багато будинків. Крім того, можна створити багато об’єктів з класу.

На наведеному малюнку ми маємо прототип одного будинку. З цього прототипу ми створили два будинки з різними характеристиками.

У цьому підручнику ви дізнаєтесь:

  • Що таке клас?
  • Приклад класу
  • Приватні та публічні ключові слова
  • Визначення об’єкта
  • Доступ до учасників даних
  • Функції членів класу
  • Конструктори та деструктори

Декларація класу

У C + клас визначається за допомогою ключового слова class. Після цього слід вказати назву класу. Потім тіло класу додається між фігурними дужками {}.

Синтаксис:

class class-name{// data// functions};
  • Ім'я класу - це ім'я, яке слід присвоїти класу.
  • Дані - це дані для класу, які зазвичай оголошуються як змінні.
  • Функції - це функції класу.

Приватні та публічні ключові слова

Ви, мабуть, стикалися з цими двома ключовими словами. Вони є модифікаторами доступу.

  • Приватна:

Коли приватне ключове слово використовується для визначення функції або класу, воно стає приватним. Доступні лише з класу.

  • Публічний:

Ключове слово public, з іншого боку, робить дані / функції загальнодоступними. Вони доступні поза класом.

Визначення об’єкта

Об'єкти створюються з класів. Об'єкти класу оголошуються так само, як оголошуються змінні. Потрібно починати ім’я класу, за яким слід ім’я об’єкта. Об'єкт типу класу.

Синтаксис:

class-name object-name;
  • Ім'я класу - це ім'я класу, з якого слід створити об'єкт.
  • Ім'я об'єкта - це ім'я, що присвоюється новому об'єкту.

Цей процес створення об'єкта з класу відомий як екземпляр.

Доступ до учасників даних

Для доступу до відкритих членів класу ми використовуємо оператор крапки (.). Це учасники, позначені модифікатором загального доступу.

Приклад 1:

#include using namespace std;class Phone {public:double cost;int slots;};int main() {Phone Y6;Phone Y7;Y6.cost = 100.0;Y6.slots = 2;Y7.cost = 200.0;Y7.slots = 2;cout << "Cost of Huawei Y6 : " << Y6.cost << endl;cout << "Cost of Huawei Y7 : " << Y7.cost << endl;cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl;cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl;return 0;}

Вихід:

Ось скріншот коду:

Пояснення коду:

  1. Включіть файл заголовка iostream у наш код, щоб використовувати його функції.
  2. Включення простору імен std в наш код, щоб використовувати його класи, не викликаючи його.
  3. Заявіть клас на ім’я Телефон.
  4. Використання модифікатора загального доступу для позначення змінних, які ми збираємось створити, як загальнодоступних.
  5. Оголосіть змінну вартість подвійного типу даних.
  6. Оголосіть цілочисельну змінну з іменем slots.
  7. Кінець класу тіла.
  8. Виклик функції main (). Логіка програми повинна бути додана до її тіла.
  9. Створіть об’єкт з назвою Y6 типу Телефон. Це називається екземпляром.
  10. Створіть об’єкт з іменем Y7 типу Телефон. Це називається екземпляром.
  11. Отримати доступ до змінної / вартості члена класу Телефон, використовуючи об’єкт Y6. Значення встановлено на 100,0. Зараз вартість Y6 встановлена ​​на 100,0.
  12. Доступ до слотів змінної / члена класу Телефон за допомогою об’єкта Y6. Значення встановлено на 2. Слоти для Y6 тепер встановлені на 2.
  13. Отримайте доступ до змінної / вартості члена класу Телефон, використовуючи об’єкт Y7. Значення встановлено на 200,0. Зараз вартість Y7 встановлена ​​на рівні 200,0.
  14. Доступ до слотів змінної / члена класу Телефон за допомогою об’єкта Y7. Значення встановлено на 2. Слоти для Y7 тепер встановлені на 2.
  15. Надрукуйте вартість Y6 на консолі разом з іншим текстом.
  16. Надрукуйте вартість Y7 на консолі разом з іншим текстом.
  17. Надрукуйте кількість слотів для Y6 поряд з іншим текстом.
  18. Надрукуйте кількість слотів для Y7 поряд з іншим текстом.
  19. Після успішного завершення програма повинна повернути значення.
  20. Кінець тіла основної () функції.

Що таке приватний клас?

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

Що таке захищений клас?

Учасники класу, позначені як захищені, мають перевагу перед тими, хто позначений як приватний. До них можуть отримати доступ функції, що входять до класу їх визначення. Крім того, до них можна отримати доступ з похідних класів.

Приклад 2:

#include using namespace std;class ClassA {public:void set_a(int val);int get_a(void);private:int a;};int ClassA::get_a(void) {return a;}void ClassA::set_a(int val) {a = val;}int main() {ClassA a;a.set_a(20);cout << "Value of a is: " << a.get_a();return 0;}

Вихід:

Ось скріншот коду:

Пояснення коду:

  1. Включіть файл заголовка iostream у наш код, щоб використовувати його функції.
  2. Включіть у наш код простір імен std, щоб використовувати його класи, не викликаючи його.
  3. Створіть клас з іменем ClassA.
  4. Використовуйте модифікатор загального доступу, щоб позначити учасника класу, який буде створено як загальнодоступний.
  5. Створіть функцію з іменем set_a (), яка приймає одне ціле значення val.
  6. Створіть функцію з іменем get_a ().
  7. Використовуйте модифікатор приватного доступу, щоб позначити учасника класу, який буде створено як приватний доступ.
  8. Оголосіть цілочисельну змінну з іменем a.
  9. Кінець класу тіла.
  10. Використовуйте ім’я класу та оператор роздільної здатності для доступу до функції get_a (). Ми хочемо визначити, що функція робить при виклику.
  11. Функція get_a () повинна повертати значення змінної a при виклику.
  12. Кінець визначення функції get_a ().
  13. Використовуйте ім'я класу та оператор роздільної здатності для доступу до функції set_a (). Ми хочемо визначити, що функція робить при виклику.
  14. Присвоєння значення змінної val змінній a.
  15. Кінець визначення функції set_a ().
  16. Виклик функції main (). Логіку програми слід додати в тілі цієї функції.
  17. Створіть екземпляр ClassA і дайте йому назву a.
  18. Використовуйте наведений вище екземпляр класу та функцію set_a (), щоб призначити значення 20 змінній a.
  19. Друк деякого тексту поряд із значенням змінної а на консолі. Значення змінної a отримується за допомогою виклику функції get_a ().
  20. Після успішного завершення програма повинна повертати значення.
  21. Кінець тіла функції main ().

Приклад 3:

#include using namespace std;class ParentClass {protected:int value;};class ChildClass : public ParentClass {public:void setId(int x) {value = x;}void displayValue() {cout << "Value is: " << value << endl;}};int main() {ChildClass c;c.setId(21);c.displayValue();return 0;}

Вихід:

Ось скріншот коду:

Пояснення коду:

  1. Включіть файл заголовка iostream у наш код, щоб використовувати його функції.
  2. Включіть у наш код простір імен std, щоб використовувати його класи, не викликаючи його.
  3. Створіть клас з ім'ям ParentClass.
  4. Використовуйте модифікатор захищеного доступу, щоб позначити член класу, який потрібно створити захищеним.
  5. Створіть цілочисельну змінну з іменем значення.
  6. Кінець класу тіла.
  7. Створіть новий клас ChildClass, який успадковує ParentClass.
  8. Використовуйте модифікатор захищеного доступу, щоб позначити елемент класу, який буде створений як доступний для дочірніх класів.
  9. Створіть функцію з іменем setId (), яка приймає одне ціле значення x.
  10. Присвоєння значення змінної x значенню змінної.
  11. Кінець визначення функції setId ().
  12. Створіть функцію з іменем displayValue ().
  13. Надрукуйте значення змінної з іменем value на консолі поряд з іншим текстом.
  14. Кінець тіла функції displayValue ().
  15. Кінець тіла класу ChildClass.
  16. Виклик функції main (). Логіку програми слід додати в тілі цієї функції.
  17. Створіть екземпляр ChildClass і дайте йому ім'я c.
  18. Використовуйте наведений вище екземпляр класу та функцію setId (), щоб призначити значення 21 змінній x.
  19. Використовуйте наведений вище екземпляр класу для виклику функції з іменем displayValue ().
  20. Після успішного завершення програма повинна повертати значення.
  21. Кінець тіла функції main ().

Функції членів класу

Функції допомагають нам маніпулювати даними. Функції члена класу можна визначити двома способами:

  • Усередині визначення класу
  • Поза визначенням класу

Якщо функцію слід визначати поза визначенням класу, ми повинні використовувати оператор роздільної здатності (: :). Це повинно супроводжуватися назвами класів та функцій.

Приклад 2:

#include #include using namespace std;class Guru99{public:string tutorial_name;int id;void printname();void printid(){cout << "Tutorial id is: "<< id;}};void Guru99::printname(){cout << "Tutorial name is: " << tutorial_name;}int main() {Guru99 guru99;guru99.tutorial_name = "C++";guru99.id = 1001;guru99.printname();cout << endl;guru99.printid();return 0;}

Вихід:

Ось скріншот коду:

Пояснення коду:

  1. Включіть у нашу програму файл заголовка iostream, щоб використовувати його функції.
  2. Включіть у нашу програму файл заголовка рядка, щоб використовувати його функції.
  3. Включіть у наш код простір імен std, щоб використовувати його класи, не викликаючи його.
  4. Створіть клас на ім’я Guru99.
  5. Використовуйте модифікатор загального доступу, щоб позначити учасників класу, які ми збираємось створити, як загальнодоступні.
  6. Створіть змінну рядка з іменем tutorial_name.
  7. Створіть цілочисельну змінну з іменем id.
  8. Створіть функцію з ім'ям printname (). Ця функція не визначена у визначенні класу.
  9. Створіть функцію з іменем print (). Ця функція визначена у визначенні класу. Його тіло було додано до визначення класу.
  10. Надрукуйте значення змінної id поряд з іншим текстом на консолі. Зверніть увагу, що це було додано в тіло функції printid (). Він буде виконаний лише тоді, коли буде викликана функція printid ().
  11. Кінець тіла функції printid ().
  12. Кінець тіла класу Guru99.
  13. Початок визначення функції printname ().
  14. Надрукуйте значення змінної tutorial_name на консолі поряд з іншим текстом. Зверніть увагу, що це було додано в тіло функції printname (). Він буде виконаний лише при виклику функції printname ().
  15. Кінець визначення функції printname ().
  16. Виклик функції main (). Логіку програми слід додати в тілі цієї функції.
  17. Створіть екземпляр класу Guru99 і дайте йому ім'я guru99.
  18. Використовуйте наведений вище екземпляр, щоб присвоїти змінній tutorial_name значення C ++.
  19. Використовуйте примірник guru99, щоб призначити значення 1001 змінної id.
  20. Використовуйте екземпляр guru99 для виклику функції printname ().
  21. Зателефонуйте команді end (end line), щоб надрукувати новий пустий рядок на консолі.
  22. Використовуйте екземпляр guru99 для виклику функції printid ().
  23. Після успішного завершення програма повинна повертати значення.
  24. Кінець тіла основної () функції.

Конструктори та деструктори

Що таке конструктори?

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

Що таке деструктори?

З іншого боку, деструктори допомагають знищувати об'єкти класу.

Ім'я конструктора має бути подібним до імені класу. Конструктори не мають типу повернення.

Конструктор може бути визначений всередині або поза тілом класу. Якщо воно визначене поза тілом класу, воно повинно бути визначене з назвою класу та оператором роздільної здатності сфери (: :).

Приклад 3:

#include using namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"<

Вихід:

Ось скріншот коду:

Пояснення коду:

  1. Включіть файл заголовка iostream до коду, щоб використовувати його функції.
  2. Включіть у наш код простір імен std, щоб використовувати його класи, не викликаючи його.
  3. Створіть клас з іменем ClassA.
  4. Використовуйте модифікатор загального доступу, щоб позначити учасника, якого ми збираємось створити, як загальнодоступного.
  5. Створіть конструктор для класу.
  6. Текст для друку на консолі при виклику конструктора. Endl - це ключове слово C ++, що означає кінцевий рядок. Він переміщує курсор миші до наступного рядка.
  7. Кінець тіла конструктора класу.
  8. Створіть деструктор для класу.
  9. Текст для друку на консолі при виклику деструктора. Endl - це ключове слово C ++, що означає кінцевий рядок. Він переміщує курсор миші до наступного рядка.
  10. Кінець корпусу деструктора.
  11. Кінець класу тіла.
  12. Виклик функції main (). Логіку програми слід додати в тілі цієї функції.
  13. Створіть об'єкт класу та дайте йому ім'я a. Буде викликаний конструктор.
  14. Створіть цілу змінну з іменем p і призначте їй значення 1.
  15. Створіть блок оператора if за допомогою змінної p.
  16. Створіть об'єкт класу та дайте йому ім'я b. Буде викликаний деструктор.
  17. Кінець тіла оператора if.
  18. Кінець тіла основної () функції.

Короткий зміст:

  • C ++ є об'єктно-орієнтованим.
  • Класи формують основні особливості С ++, які роблять його об’єктно-орієнтованим.
  • Клас С ++ поєднує дані та методи обробки даних в одне ціле.
  • Клас - це проект об'єкта.
  • Класи визначають форму предмета.
  • Дані та методи, що містяться в класі, відомі як члени класу.
  • Щоб отримати доступ до учасників класу, слід використовувати екземпляр класу.
  • Для створення класу ми використовуємо ключове слово class.
  • Функції члена класу можуть бути визначені всередині або поза класом.