При объявлении полей класса не допускается их инициализация, поскольку в момент описания поля память для его размещения еще не выделена. Выделение памяти осуществляется не для класса, а для объектов этого класса. Поэтому возможность инициализации полей появляется после объявления данного класса.
Значение может заноситься в поле объекта во время выполнения программы несколькими способами:
  1. присваиванием значения полю объекта
  2. внутри любой компонентной функции используемого класса
  3. согласно общим правилам C++ с использованием оператора инициализации.
Эти правила применимы только для инициализации общедоступных полей, описанных в секции public. Инициализация полей, описанных в секциях private и protected возможно только с помощью компонентной функции.
Пример 1
Пример метода, определенного в другом месте программы с помощью операции доступа к области видимости (::)
void monstr::draw(int x, int y, int scale, int position)
{
<тело метода>
}

Пример 2
Пример описания метода, определенного как встроенный вне класса с пометкой директивы inline.
inline int monstr::get_ammo()
{
  return ammo;
}
Пример 3
Примеры доступа к элементам объекта аналогично доступу к полям структуры.
. – для обращение через имя объекта
-> – через указатель
int n=Vasia.get_ammo();
stdio[5].draw(10,10,1,1);
cout<<beavis-> get_health();

В случае, когда обращаются к const объекту, к нему применяется только const методы.
Объект типа const (константный объект)- объект, значение полей которого изменять запрещено.

Пример 4
class monstr
{…
int get_health() const {return health;}
};
const monstr Deaf(0,0); /* константный объект */
cout<<Dead.get_health();