I would not use C++ on firmware though. Usually memory/space requirements are far more important than OOP lang features. And good software can be developed without them.
/If/ you know the language and tools well, there is no reason that C++ won't be as efficient in space and time as the equivalent C code. C++ offers real gains to be had over C for embedded software, with rich (if a bit cryptic) zero-overhead abstractions, and higher level constructs that can eliminate entire classes of errors.