Конкретные переменные типа «класс» называются экземплярами класса, или объектами. Объект – размещенный в оперативной памяти экземпляр данного типа. Все объекты в динамической памяти безымянны.
Время жизни и видимость объектов зависит от вида и места их описания и подчиняется общим правилам С++:
monstr Vasia: // Объект класса monstr с параметрами по умолчанию
monstr Super(200. 300): // Объект с явной инициализацией
monstr stado[100]: // Массив объектов с параметрами по умолчанию
monstr *beavis = new monstr (10): // Динамический объект
//(второй параметр задается по умолчанию)
monstr &butthead = Vasia: // Ссылка на объект
При создании каждого объекта выделяется память, достаточная для хранения всех его полей, и автоматически вызывается конструктор, выполняющий их инициализацию. Методы класса не тиражируются. При выходе объекта из области действия он уничтожается, при этом автоматически вызывается деструктор. Доступ к элементам объекта аналогичен доступу к полям структуры. Для этого используются операция . (точка) при обращении к элементу через имя объекта и операция -> при обращении через указатель, например:
int n = Vasid.get_ammo();
stado[5].draw;
cout « beavis->get_health();
Обратиться таким образом можно только к элементам со спецификаторам рublic. Получить или изменить значения элементов со спецификатором private можно только через обращение к соответствующим методам (Спецификаторы доступа private и рubliс управляют видимостью элементов класса. Элементы, описанные после служебного слова private, видимы только внутри
класса. Интерфейс класса описывается после спецификатора public. Действие любого спецификатора распространяется до следующего спецификатора или до конца класса.)
Можно создать константный объект, значения полей которого изменять запрещается.
К нему должны применяться только константные методы:
class monstr{
int get_health() const {return health;}
}: