Обекти
Дефиницията на класа може да се разглежда като шаблон, по който се създават обекти. Дефинирането на клас създава нов тип в областта на видимост, в която е направена дефиницията. За да се дефинира обект от даден клас, трябва да се дефинира променлива от съответния тип.
Point p; Point* ptr=&p; Point& ref=p;
При дефиниране на променлива от типа на даден клас се създава обект (екземпляр, инстанция) от класа. Всеки обект притежава собствено копие на член-променливите на класа. При създаването на обект се създават и екземпляри на всички член-променливи на класа, които стават „собственост“ на създадения обект.
За разлика от член-променливите, всички обекти си поделят само едно копие на член-функциите на класа. Независимо от броя на обектите в програмата има само едно копие на член-функциите на класа.
Нека като пример разгледаме класа Point дефиниран по следния начин:
class Point {
double x_, y_;
public:
void set_x(double x) {
x_=x;
}
double get_x(void) {
return x_;
}
};
Нека са дефинирани два обекта p1 и p2 от типа Point. Всеки от тези обекти притежава собствено копие от нестатичните член-променливи x_ и y_.
int main() {
Point p1, p2;
p1.set_x(10);
p2.set_x(20);
p1.get_x();
p2.get_x();
...
}
Когато методът get_x() се извиква чрез обекта p1, то използваната в метода член-променлива x_ принадлежи на обекта p1 (вж. ред 4).Когато методът get_x() се извиква чрез обекта p2, то използваната в метода член-променлива x_ принадлежи на обекта p2 (вж. ред 5). Като се използва методът set_x() се модифицира стойността на член-променливата x_ за съответния обект – в ред 2 член-променливата x_ на обекта p1 получава стойност 10, а в ред 3 член-променливата x_ на обекта p2 получава стойност 20.

Pingback: CPP-101: Кратък обзор на езика за програмиране C++ | Записки по програмиране
Pingback: CPP-101: Обработка на изключения | Записки по програмиране