Вообще, одно и тоже можно сделать разными способами даже на одном языке программирования (пример по ссылке). C++ дает возможность работать в очень обширном диапазоне уровней абстракции:
начиная http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html низкоуровневой манипуляцие битами и регистрами и заканчивая метапрограммированием. Что выбрать - должен решать сам программист, в соответствии с задачей. Хотя есть мнение, что язык формирует мышление, именно поэтому трудно привыкать к C++ с уже сформированным "сишным" мышлением.