C++ is a superset of C. What was added was object-oriented capabilities; however, the inclusion of multiple inheritance, combined with the high risk of memory leaks, makes C++ a troublesome object-oriented programming language at best. Thus, when implementing an object-oriented design, many programmers prefer to use more modern OO languages such as Java or C#.
Also, C++ is a very large language, with an extremely extensive set of libraries, and they can be quite complex. Thus, very few programmers truly "know C++". Instead, they have "used a small portion" of C++. For this reason, good C++ programmers tend to specialize specifically in C++ because it is such a large language with an extensive learning curve. In the past when I needed a component to be written in C++, I tended to farm it out to an expert who does C++ all the time, rather than attempt it myself.
You need to learn about memory management and memory usage in either C or C++--because the issues there are the same, whether you use the additional capabilities and libraries of C++ or not. And also, you need to learn how to do good object-oriented programming. But IMO (and the opinion of many computer scientists), it is not desirable to create many new OO designs in C++ if you can, instead, use one of the improved languages. Even if you need libraries already written in C++, those can be called from the newer languages (assuming you really know what you are doing).