C ++ был изобретен для управления сложностью, с которой C не мог справиться. Например, общая проблема с C состояла в том, что вы могли «исчерпать имена для переменных» (конечно, их нельзя понимать буквально), потому что не было инкапсуляции, пространств имен и т. Д.
Кроме того, в C нет исключений, поэтому обработка ошибок очень подвержена ошибкам, поскольку от пользователя библиотеки всегда зависит проверка возвращаемых значений функций, тогда как в случае исключений разработчик библиотеки просто генерирует исключение, которое гарантирует, что поток программы будет остановлен.
C ++ помогает, имея конструктор init объекты, который автоматически вызывается компилятором. В отличие от структур C, которые должны быть инициализированы программистом (следовательно, это еще одна область, подверженная ошибкам).
Наконец, ООП предлагает множество других преимуществ, таких как повторное использование объектов, а также общие концепции, основанные на программировании, такие как шаблоны и шаблоны, которые позволяют повторно использовать исходный код и т. Д.
И много других вещей, которые заняли бы слишком много времени, чтобы перечислить здесь.