1
01.10.2020
�Програмування на С++
�
Введення в класи та об’єкти �
Л
2
01.10.2020
Клас (Class) – об’єкт, що складається із сукупності методів і змінних (атрибутів), які описують цей об’єкт.
Метод (Method) – сукупність інструкцій мови опрацювання даних.
Змінна класу (Class variаble) – звичайна змінна, що визначається всередині класу (а не в середині методів класу), яка є доступною для всіх екземплярів цього класу.
Екземпляр класу (Instance) – окремий об’єкт класу.
Змінна екземпляра класу (Instance variаble) – змінна, що визначена всередині методу класу і яка належить тільки цьому класу.
Статистичні поля класу
Приклад
// main.cpp
#include <iostream>
using namespace std;
class TPoint
{ double x,y;
public:
static int N; //кількість точок
TPoint(double x1=0.0,double y1=0.0)
{ N++; x = x1; y = y1;}
};
int TPoint::N=0; //визначення та ініціалізація статич. поля
int main()
{ TPoint A(1.0,2.0); TPoint B(4.0,5.0);
TPoint *C = new TPoint(7.0,8.0);
cout << “ВИЗНАЧЕНІ” << TPoint::N << " точки\n";
cout << “ВИЗНАЧЕНІ” << A.N << " точки\n";
cout << “ВИЗНАЧЕНІ” << C->N << " точки\n";
delete C;}
3
Cтатичні поля класу оголошуються всередині класу з використанням ключового слова static. Специфіка статичних полів:
а) розміщуються в статичній області пам'яті на стадії компіляції (коли ще не створено жодного об'єкта!) незалежно від того, де створюється сам об'єкт.
б) існують в єдиному екземплярі (тобто компілятор виділяє під нього пам'ять тільки один раз!) незалежно від того, скільки створено об'єктів. Це означає, що для полів класу з ключовим словом static при створенні об'єкта пам'ять не резервується.
cout << A.N << C-> N.
4
Статичні методи класу
Приклад: // main.cpp
#include <iostream>
using namespace std;
class TPoint
{ double x,y;
static int N;//кількість точок
public:
TPoint(double x1=0.0,double y1=0.0)
{ N++; x = x1; y = y1;}
static int& count(){return N;}
};
int TPoint::N; //визначення та ініціалізація
// статичного поля (за замовчуванням 0)
int main()
{ TPoint A(1.0,2.0); TPoint B(4.0,5.0);
TPoint *C = new TPoint(7.0,8.0);
cout << «Визначені " << TPoint::count() << " точки\n";
delete C;}
5
Л
6
01.10.2020
Посилання на програму реалізації алгоритму довгої арифметики в С++
https://m.habr.com/ru/post/172285/
Ще про класи
https://code-live.ru/post/cpp-classes/
Відео про довгу арифметику: