C++'s complexity does not arise from its power. With the exception of templates, C is just as powerful but far more orthogonal and simple.
E.g. the difference between references and pointers. E.g. the phenomenally baroque template syntax. E.g. phenomenally complex rules for multiple inheritance. Slicing problem. Syntax so hard to parse only a couple do it right. Lots of features that just don't carry their weight (operator overloading).