Non e' che uno sia meglio dell'altro. Se programmi per un micro 8 bit come 8051, programmi in C, lo spazio in flash e' limitato. Sarebbe assurdo usare c++, per certi micro non c'e' neanche il compilatore, e per micro con flash molto piccola neanche possibile, basta in include <iostream> e gial vedi il size finale a centinaia di KB. Se fai un programma per PC, a meno che non sia di poche righe, ben poco proficuo usare C, dove non ci sono proboemi di memoria e spazio su disco, sicuramente C++, anche solo per poter usare le STL.
Infine, conosco qualche maestrino di c++ che ha grosse difficolta' a programmare in C. Quindi il C non e' passaggio obbligato per c++.