If you plan to work in C++, make sure that you're extremely familiar with the Standard Template Library and at least passingly familiar with the more commonly used Boost libraries.
Too many "C++" coders are simply C coders who use classes. I used to be such a coder; that kind of wishy-washy ness doesn't impress. Either become a low-level C guru (in which case you'll be in demand for embedded computing and compute-bound math stuff where cache use and memory bandwidth are considerations), or target a high-level approach. The fact that C++ lets you do both at once doesn't mean it's a good idea. When writing C++ your goal should be to minimize the use of "new", and eliminate the use of "delete". (It goes without saying that "malloc" and "free" don't belong in a C++ program.) Every dynamic array should be an STL vector. Every polymorphic object should be owned by a smart pointer. There's rarely a tree-based problem that an STL map or set isn't just as good for. Etc. C++ doesn't have a garbage collector, but that doesn't mean memory management can't be disciplined and orderly to the point where leak-related bugs are virtually impossible.
It may also be a good idea to familiarize yourself with one of the GUI frameworks. At the moment, Qt seems to be the crowd-pleaser, although others such as GTK+ and WxWidgets have plenty of supporters too.
Too many "C++" coders are simply C coders who use classes. I used to be such a coder; that kind of wishy-washy ness doesn't impress. Either become a low-level C guru (in which case you'll be in demand for embedded computing and compute-bound math stuff where cache use and memory bandwidth are considerations), or target a high-level approach. The fact that C++ lets you do both at once doesn't mean it's a good idea. When writing C++ your goal should be to minimize the use of "new", and eliminate the use of "delete". (It goes without saying that "malloc" and "free" don't belong in a C++ program.) Every dynamic array should be an STL vector. Every polymorphic object should be owned by a smart pointer. There's rarely a tree-based problem that an STL map or set isn't just as good for. Etc. C++ doesn't have a garbage collector, but that doesn't mean memory management can't be disciplined and orderly to the point where leak-related bugs are virtually impossible.
It may also be a good idea to familiarize yourself with one of the GUI frameworks. At the moment, Qt seems to be the crowd-pleaser, although others such as GTK+ and WxWidgets have plenty of supporters too.