Нововведениями C++ в сравнении с Си являются: - поддержка объектно-ориентированного программирования;
- поддержка обобщённого программирования через шаблоны;
- дополнительные типы данных;
- исключения;
- пространства имён;
- встраиваемые функции;
- перегрузка операторов;
- перегрузка имён функций;
- ссылки и операторы управления свободно распределяемой памятью;
- дополнения к стандартной библиотеке.
Язык C++ во многом является надмножеством Си. Новые возможности C++ включают объявления в виде выражений, преобразования типов в виде функций, операторы new и delete, тип bool, ссылки, расширенное понятие константности, подставляемые функции, аргументы по умолчанию, переопределения, пространства имён, классы (включая и все связанные с классами возможности, такие как наследование, функции-члены, виртуальные функции, абстрактные классы и конструкторы), переопределения операторов, шаблоны, оператор ::, обработку исключений, динамическую идентификацию и многое другое. Язык C++ также во многих случаях строже относится к проверке типов, чем Си.
В C++ появились комментарии в виде двойной косой черты (//), которые были в предшественнике Си — языке BCPL.
Некоторые особенности C++ позднее были перенесены в Си, например ключевые слова const и inline, объявления в циклах for и комментарии в стиле C++ (//). В более поздних реализациях Си также были представлены возможности, которых нет в C++, например макросы vararg и улучшенная работа с массивами-параметрами. |