C++ sucks - some reasons

C++ pointers and refs not fully interchangeable, since ABCs can't be dereferenced

Most "default behaviours" are bad or dangerous

No built-in reflection

Language implementation is visible in the programming model

"new" encourages new users to think that pointers are a key part of the language

Enums are dumb - for anything which exposes itself to a program's UI, so much string conversion stuff needs to be put there by hand that it's not worth doing.

Terrible language for multi-language wrappers since the symbol name-mangling is undefined