WHERE did you get the idea that C++ is more immune to memory leaks or buffer overflows than C? C++ adds to the basic C memory management services and memory organization, but it still retains the original C ones. And adds an additional way to leak memory - undisposed objects.
Probably from experience: Consistent use of stl memory classes (shared_ptr and unique_ptr) and containers (mostly std::vector) make it very hard to shoot yourself in the foot. Adhere to "Raw pointers don't transfer livetime from function to function" if you use raw pointers. These things are really easily spotted by code-review.