C++
Вспомнив опыт своей диссертации, Страуструп решил дополнить язык C (преемник BCPL) возможностями, имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C). В первую очередь в C были добавлены классы (с инкапсуляцией), наследование классов, строгая проверка типов, inline-функции и аргументы по умолчанию. Ранние версии языка, первоначально именовавшегося «C with classes» («Си с классами»), стали доступны с 1980 года.
G++
На операционных системах Unix, команда gcc обычно используется для вызова компилятора GCC, как и команда g++. По умолчанию язык программирования C или C++ определяется по расширению компилируемого файла(см. g++ --help описание параметра -x). Но при этом G++ все равно является компилятором, а не просто препроцессором. G++ строит объектный код напрямую из исходного C++ кода, без использования промежуточной С-версии (в отличие от некоторых компиляторов, которые создают объектный код Си из исходников, написанных на C++). Это позволяет получать более полную и точную информацию о работе программы при отладке (например, при использовании GDB).