Сложно вести вас, потому что ваш вопрос немного неясен. Тем не менее, вы можете определить вложенные структуры и союзы, как это, если это то, что вы спрашиваете:
class C
{
struct S
{
int x;
};
union U
{
int i;
char c;
};
};
Что касается макросов, вы не определяете их в определении класса.
Возможно, стоит взять хорошую книгу, чтобы помочь вам с такими вопросами. Мое предложение - что-то вроде Учебника по С ++ (Липпман и Ладжо) - я изучил С ++ из него в тот день и нашел его довольно хорошим.