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.
C++, especially modern standards of the language, offer far more than OOP features.
/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.
Nothing guarantees that it is zero-overhead, it all depends on the efforts, quality and mood of the C++ compiler. Whereas in C you can at least rely on the fact that even without any complex optimisation it will at worst produce machine code that looks 99% like the C code, because it maps 1 -> 0.99. Good luck telling what is the complexity hidden behind a C++ operator.
bobmoretti|9 years ago
/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.
wott|9 years ago