enlightenment’s Eo language is interesting: https://phab.enlightenment.org/phame/live/1//post/yet_another_c_object_model_but_better/
it grew out of their object-oriented-c codebase, with the patterns now captured at the language level
edit: more recent presentation: http://www.slideshare.net/EnlightenmentProject/edevday-2014416-review-of-eolian-eo-bindings-interfaces-and-whats-to-come
There are C++ compilers for some embedded CPUs, but they are uncommon, so I need to stick to C, in the name of portability.
Then get a different CPU/toolchain. Why would you make things more difficult for yourself. Also, C++-to-C compilers exist (or used to exist)
Discussed a lot already. See the discussion on HN: https://news.ycombinator.com/item?id=10260517