Другие ответы здесь продемонстрировали, как определять структуры внутри классов. Есть еще один способ сделать это: объявить структуру внутри класса, но определить ее снаружи. Это может быть полезно, например, если структура довольно сложна и может использоваться автономно, так что было бы полезно ее подробное описание где-то еще.
Синтаксис этого следующий:
class Container {
...
struct Inner; // Declare, but not define, the struct.
...
};
struct Container::Inner {
/* Define the struct here. */
};
Вы бы чаще видели это в контексте определения вложенных классов, а не структур (типичным примером было бы определение типа итератора для класса коллекции), но я подумал, что для полноты изложения здесь стоит показать.