Есть клас A, в котором находится объект класса B. И класс B, в котором есть перемеррая, являющаяся enum-ом, определенным в классе A. Можно ли это организовать? Выносить определение enum из класса не хотелось бы. Хранить указатель на B вместо объекта — тоже.
class A
{
enum TYPE_OF_CLASS_A { RED, GREEN, BLUE };
B m_obj;
};
class B
{
A::TYPE_OF_CLASS_A m_type_of_A;
};
Здравствуйте, 777777w, Вы писали:
7>Есть клас A, в котором находится объект класса B. И класс B, в котором есть перемеррая, являющаяся enum-ом, определенным в классе A. Можно ли это организовать? Выносить определение enum из класса не хотелось бы. Хранить указатель на B вместо объекта — тоже.
То есть, вопрос о том, как сделать forward declaration.
А запросто:
struct A_assets
{
enum TYPE { RED, GREEN, BLUE };
};
class B
{
A_assets::TYPE a;
};
class A : public A_assets
{
B b;
};
... << RSDN@Home 1.2.0 alpha rev. 655>>
Здравствуйте, 777777w, Вы писали:
7>Есть клас A, в котором находится объект класса B. И класс B, в котором есть перемеррая, являющаяся enum-ом, определенным в классе A. Можно ли это организовать?
Конечно — путем добавления дополнительного уровня абстакции
struct A_Base
{
enum TYPE_OF_CLASS_A { RED, GREEN, BLUE };
};
class B
{
A_Base::TYPE_OF_CLASS_A m_type_of_A;
};
class A : public A_Base
{
B m_obj;
};