-How to use inheritance and or composition wisely/effectively
-Operator overloading
-Templates
-Iterators
-Exceptions/Error Handling
-Good understanding of containers, their tradeoffs, running times for different operations, etc.
The principles listed by htirwin just about cover it. These are not unique to C++ though, one should simply understand the principle itself. If you can do that, then you can use them properly in any language, which is far more valuable. Besides just understanding general language concepts, however, any good software engineer should be very good at problem solving and thinking creatively. You could understand every programming language ever made and all of your knowledge would be useless if you hadn't a clue as to how to actually apply it to real problems.
One aspect I would like to add that no one ever seems to mention it enough (Even though it takes up at least 50% of a programmers time) is debugging. Learn how to use debugging tools and learn how to use them effectively. These include standard debuggers, profilers, etc.
These should be learned as soon as possible in my mind (Should be taught in the first course in college imo), and every single programmer should at least know how to use a debugger.
I just want to add Pointers: In every language there is some sort of mechanism (except in really, really high-level languages, but even Java has this feature) to reference an object from another. Even if functionality is limited to being able to have more than one reference, it's still critical to understand how pointers work. All too often I've heard Java devs say stupid things like "In C++ you have to 'manage' your memory, but in java you don't have to!", but that's not true at all. It just tells me that they have no clue how pointers work, and that they don't understand RAII or automatic variables, even though they obtained a bachelor's degree.
One of the most powerful aspects of C++ is the ability to apply new language features when using old C code or libraries. Like wrapping pointers into smart-pointers, using vectors/RAII, etc.