The main thing left is understanding pointers vs references vs stack vs heap allocation (egthe instance.x vs instance->x difference) because C++ has those explicitly different pointer vs non-pointer intances of "instance", while C# or Java hide that difference (so if you know C# you can slightly think of it as struct vs class in C# difference since struct is copy-by-value while class is always a reference (a pointer).
Moving away from objects doesn't make sense: objects are perfectly fine and usable. It all depends on the context. Anyone who says "don't use objects" is a religous zaelot who does't see the forest for the trees anymore. For certain extreme performance cases objects can be bad, but in ~95%+ of cases objects are perfectly fine. We are again starting to enter "it all depends on the context" territory.
IMO C++ got some very bad rep for no reason at all: it got mythologized into a "very difficult arcane language that people makes meme about". So because of this people think C++ is some boogey man, while it's really not. Unless you are making life-critical software like avionics it honestly isn't much more difficult than C# or Java.
Ironicaly you already understand the difference between pointer and non-pointer since you know instinctively that an "int" type is will get fully copied while in Java a class object is a reference (pointer). C++ just makes this even more explicity since YOU can decide if a class is a copy-by-value or a reference on the fly (assuming the class doesn't have complex sub-fields inside of it that require their own complex copy-by-value vs reference rules).
Also due to C++ being mythologized as an "super difficult language" you get some extra XP on resumes if you state that you know it.