Bjarne's book about C++ design and evolution is quite good to understand how C's compatibility and other issues drove C++ design.
I guess cfront affected the design a lot by being based on converting the input to C. Not adding a proper module system was a big mistake, but that is OT.
