класи в C++

User is learning C++ and working with object-oriented programming concepts, including classes and objects.
pic

Ми знаємо про типи даних у C++, такі як int, float, string тощо. Якщо ми хочемо створити власні типи даних, які будуть містити комбінацію різних типів даних, об'єктів та методів, які ми можемо виконувати з цими об'єктами.

Це можна зробити за допомогою класів у C++. Отже, класи — це користувацькі типи даних у C++. Що це означає? Наприклад, скажімо, ви хочете мати тип даних для студентів.

Для цього ви створите тип даних Student, який міститиме ім'я, номер за списком, адресу, розділ, до якого він належить, і так далі. Якщо для кожного студента вам потрібно мати змінну типу int, яка буде представляти номер за списком цього студента, змінну типу string для імені та адреси цього студента тощо, це призведе до дублювання роботи, і скільки різних змінних потрібно для визначення кожного типу даних.

Щоб подолати цю проблему, нам потрібні класи. Ми створимо клас Student, який включатиме всі ці параметри та разом із цим введемо методи, щоб ми могли отримувати дані кожного студента.

Синтаксис для оголошення класу

class Student {  
 //об'єкти та методи  
}
  • Ключове слово class: Це вказує компілятору, що ви визначаєте клас.
  • Назва Student: Назва класу, зазвичай з великої літери для відрізнення від інших змінних.
  • Фігурні дужки {}: Визначають деталі класу.
  • Крапка з комою ;: Завжди обов'язкова після закриття фігурних дужок.

Давайте створимо клас Car.

class Car {  
public:  
 // Властивості  
 string color;  
 int speed;  

 // Поведінка  
 void drive() {  
 cout << "Машина рухається зі швидкістю " << speed << " км/год" << endl;  
 }  
}; // Зверніть увагу, що крапка з комою потрібна в кінці класу

Ключові моменти:

  • public: Це ключове слово дозволяє доступ до членів класу ззовні. Пояснимо це пізніше.
  • Властивості: color і speed — це змінні, специфічні для цього класу.
  • Поведение: Функція drive() використовує властивість speed для виконання дії.

Створення об'єкта цього класу

int main() {  
 Car myCar; // Створення об'єкта класу Car  
 myCar.color = "Red"; // Встановлення властивостей  
 myCar.speed = 100;  

 myCar.drive(); // Виклик поведінки  
 return 0;  
}

Примітка: При доступі до об'єктів класу Car ми не можемо звертатися до них безпосередньо. Нам потрібно використовувати оператор крапки разом з ім'ям класу, як показано вище.

Оскільки ми зробили як властивості, так і поведінку public для класу Car, ми також можемо зробити їх private, protected і public. Це залежить від того, хто може отримати доступ до цього члена класу на основі похідних класів.

Задачі для практики та рішення

Оголосіть клас Complex для представлення комплексного числа. Оголосіть змінні-члени для збереження дійсної та уявної частини комплексного числа, а також визначте функції-члени для встановлення значень комплексного числа та виведення значень цього числа.

#include  
using namespace std;  
class Complex{  
 private:  
 int a,b;  
 public:  
 void setData(int x,int y){  
 a=x;  
 b=y;  
 }  
 void showData(){  
 cout<<"\na="<
Оголосіть відповідну кількість змінних-членів класу та також визначте функції-члени для встановлення значень часу та виведення значень часу.

class Time{
private:
int hr,min,sec;
public:
void setTime(int x,int y,int z){
hr=x;
min=y;
sec=z;
}
void showTime(){
cout< Оголосіть клас Complex для представлення комплексного числа з змінними-членами a та b, які зберігають дійсну та уявну частину. Також визначте наступні функції-члени:

void setData(int, int)

void showData()

Complex add(Complex)

Complex subtract(Complex)

Complex multiply(Complex)

class Time{  
 private:  
 int h,m,s;  
 public:  
 void setTime(int a,int b,int c){h=a; m=b; s=c;};  
 void showTime(){  
 cout<<"\n"<T.h)  
 return true;  
 else if(hT.m)  
 return true;  
 else if(mT.s)  
 return true;  
 else  
 return false;  

 }  
};
int main() {  
 Time t1, t2, t3;  

 // Встановлення часу для t1 та t2  
 t1.setTime(2, 45, 30); // 2 години, 45 хвилин, 30 секунд  
 t2.setTime(1, 20, 40); // 1 година, 20 хвилин, 40 секунд  

 // Виведення часу  
 cout << "Час 1:";  
 t1.showTime();  
 cout << "\nЧас 2:";  
 t2.showTime();  

 // Додавання часу  
 t3 = t1.add(t2);  
 cout << "\n\nПісля додавання часу 1 та часу 2:";  
 t3.showTime();  

 // Порівняння часу  
 if (t1.is_greater(t2)) {  
 cout << "\n\nЧас 1 більший за час 2.";  
 } else {  
 cout << "\n\nЧас 2 більший або рівний часу 1.";  
 }  

 return 0;  
}




Перекладено з: [classes in C++](https://medium.com/@dubeyshubham108/classes-in-c-15af861501e7)

Leave a Reply

Your email address will not be published. Required fields are marked *