I didn't find C++ to be particularly difficult to learn. I actually had a harder time with Objective C than C++. There are a few things that will really make life easier for you:
Don't be lazy and skip creating copy constructors, destructors & assignment/equality operators for classes that need them (those that contain pointers you need to deep copy). Being lazy is a good way to introduce subtle bugs.
Learn RAII.
Link 1,
Link 2.
Don't use heap semantics (pointers) just because its cool or fun (well except for learning projects and breakable toys) when you're better served by stack semantics; i.e. variables that will never be passed between functional units or passed as arguments to other functions. Any time you use a pointer, you're opening yourself up to the possibility of a memory leak, and when you're not dealing with some massive object larger than your stack or a large object that has to be passed to a function you're not receiving any benefit by using a pointer. Stroustrup has been trying to get this message out for years but its very hard to convince people to not throw pointers at everything (partially because
pointers are what make C/C++/Obj C better than those other inferior languages ).
Also related, try to pass objects by reference where possible. There are many fringe benefits besides being able to, in many cases, use simpler syntax. At the very least, remember to pass your objects as pointers so you're not creating copies left and right for no reason. Primitive types (int, bool, float, char, etc) can be passed by value.
Learn how to use
Smart Pointers.
Learn
Const correctness.
Try to
rely on composition rather than inheritance. This will be hard initially since deciding which is better is very much a decision influenced by past experience and most of your teaching material will have you creating all sorts of inheritance chains. Just keep an open mind to how you implement things and you'll be fine.