Якщо описана структура, клас (про класи див. нижче), об'єднання (union) або перерахування (enum), її ім'я є ім'ям типу, наприклад: struct Time{int hh,mm,ss;}; Time t1, t2; Усередині структури або класу можна описувати нові типи, як через typedef, так і через опис інших структур або класів. Для доступу до таких типів поза структурою або класом, до імені типу додається ім'я структури і дві двокрапки: struct S {typedef int** T; T x;}; S::T у; Об'єктно-орієнтовані особливості мови