Systém hlavičkových souborů je stejný jako v C. Inteligence hlášky záleží na kompilátoru, Visual C++ je na tom bídně, GCC o trochu líp, ale třeba Clang řekne velmi přesně a srozumitelně, co je a kde špatně. Refaktorování stejně jako v každém složitějším jazyce záleží na tom, jak je napsaný kód (a neříkejte mi, že u Javy tomu tak není).