The basic problem with C++ is that it has hiding without memory safety.
C has neither hiding nor memory safety. Most newer languages have both. C++ stands alone as a widely used language with high level unsafe abstractions. This is the source of most buffer overflow security advisories.
The usual euphemism is "abstraction". It's doing something inside, it's hard to see what that is, and it has constraints on its use which are relevant to memory safety but are not enforced by the language.
C has neither hiding nor memory safety. Most newer languages have both. C++ stands alone as a widely used language with high level unsafe abstractions. This is the source of most buffer overflow security advisories.