Hmm... I think that there is some confusion about this...
Decompilation to C++ is impossible. The decompiler can rebuild only information contained within its target: now, since its target is ASSEMBLER, which lacks anything related to HLL, it cannot surely rebuild things that are not included, like objects.
Also, consider that some C++ concept are completely discarded after the code checking phase, and are never really used within the compiler: for example the
PRIVATE/PUBLIC/PROTECTED directives are used only for security checking.