Don't use C types (such as the one above) as base classes. They won't be properly cleaned up when the derived instance is destructed.
I suspect that macro was put there intentionally to prevent unwitting users from deriving from the struct.
Instead of deriving, create members of that type in the class.
Oh, and your struct declaration will be rejected by some compilers. You're basically doing this:
1 2
|
struct PAUSEMENU{/*...*/};
PAUSEMENU PAUSEMENU;
|
This effectively makes referring to the PAUSEMENU type impossible after the class definition because the PAUSEMENU object will have hidden it, which means you can't pass parameters of that type, create new instances, etc. etc.
And finally, try to avoid declaring fully capitalized identifiers that aren't macros or constants. People usually expect such identifiers to refer to either of those, so your style could be confusing. Also, fully capitalized identifiers are more likely to create conflicts when someone has already declared a macro with the same name.
The opposite also applies, but even more strongly. Don't declare macros in all lower case. People don't expect them to be macros.