Forward declaration of nested enum
问题 I have code similar to the following: class B { } class A { enum { EOne, ETwo } EMyEnum; B myB; } I want to declare a member of type EMyEnum in class B (which is declared before A). Is this possible? I realise the solution is to declare class B second, but for clarity I would prefer not to. 回答1: It's not possible... but it can be faked with inheritance abuse :) namespace detail { class A_EMyEnum { public: enum { EOne, ETwo } EMyEnum; protected: A_EMyEnum() {} A_EMyEnum(const A_EMyEnum&) {} A