One of the wonderful things about C++ is that it can express just about anything which can be encoded in a program. GC, common base types, functional programming, imperative programming, object oriented programming, meta-programming, logic-based systems, dynamic module systems (a la Apache modules), and a bunch more.
But that does not make a language such as Java a subset, unless your premise is that any language which can in some way be expressed in or embedded int C++ qualifies as a subset. If that's the case, then pretty much every language "is a subset of C++" (and yes, even Lisp).
1 - Yes, I mean "wonderful things" as I have worked in C++ for many years. Still do when the problem calls for it.
2 - http://shop.oreilly.com/product/9781565925670.do
2 - https://common-lisp.net/project/ecl/
Get dozens of book recommendations delivered straight to your inbox every Thursday.