В программе, использующей определенные ранее классы по мере необходимости объявляются объекты классов. Такое объявления выглядит следующим образом:

<имя класса> <список объектов или указателей>

Как только объект класса определен, обращение к полям и функциям объекта может осуществляться с помощью полных имен, каждое из которых имеет следующий вид:

<имя объекта>.<имя класса>::<имя поля или функции>

Чаще доступ к компонентам объекта обеспечивается с помощью укороченного имени, в котором имя класса и двоеточие опускаются. В этом случае доступ к полям и методам осуществляется по аналогии с обращением к полям структур:

<имя объекта>.<имя поля или функции>
<имя указателя на объект> -> <имя поля или функции>
<имя объекта>[индекс].<имя поля или функции>

Пример 1
Примеры объявления объектов класса:
monstr Vasia; /* Объект класса monstr с параметрами по умолчанию */
monstr Super(200, 300); /* Объект с явной инициализацией */
monstr stado[100]; /* Массив объектов класса monstr с параметрами по умолчанию */
monstr *beavis = new monstr(10); /* Динамический объект, второй параметр по умолчанию */
monstr &butthead = Vasia; /* Ссылка на объект */

Так как объекты некоторого класса являются обычными переменными, то на них распространяется общие правила длительности существования (времени жизни) и области действия переменных. При создании и удалении объектов определенного класса соблюдаются следующие правила:
  1. Глобальные и локальные статические объекты создаются до вызова функции main и уничтожаются по завершении работы программы.
  2. Автоматические объекты создаются каждый раз при их объявлении и уничтожаются при выходе из функции, в которой они появились.
  3. Объекты, память под которые выделяется динамически создаются функцией new и уничтожаются функцией delete.