The C++ programming language has almost the same storage management schemes as the C language. The difference is in their interfaces. The library routines malloc() and free() are invoked via new and delete operators. These operators also initialize and clean up the allocated object by invoking its constructor and destructor. An object can have its Run-Time Type Information (RTTI) when referenced via pointers. The capabilities of the standard I/O streams library are just the same as the C counterpart. [Stroustrup 91]
Therefore, C++ has the same inconveniences as C in storage management in spite of the more abstract interfaces. The advantages of C++ reside in the capabilities of abstraction in interfaces.