У класі можна визначати типи даних, внутрішні по відношенню до класу. Так визначаються допоміжні типи, які використовуються класом, що тільки містить їх. Механізм вкладених типів дозволяє приховати непотрібні деталі і більш повно реалізувати принцип інкапсуляції. Безпосередній доступ ззовні до такого класу неможливий (мається на увазі доступ по імені без уточнення). Для вкладених типів можна використовувати ті ж специфікатори, що і для полів класу.
Наприклад, введемо в наш клас Monster допоміжний клас Gun. Об'єкти цього класу без “господаря” даремні, тому його можна визначити як внутрішній: