C++
Вспомнив опыт своей диссертации, Страуструп решил дополнить язык C (преемник BCPL) возможностями, имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C). В первую очередь в C были добавлены классы (с инкапсуляцией), наследование классов, строгая проверка типов, inline-функции и аргументы по умолчанию. Ранние версии языка, первоначально именовавшегося «C with classes» («Си с классами»), стали доступны с 1980 года.
C++
Поскольку все элементы семантики C++, отсутствующие в Си, были заимствованы из других языков (зачастую чужеродных Алголу), очевидно, что для адекватного применения этих взаимно противоречивых возможностей и избегания провоцируемых ими ошибок программисту на C++ крайне желательно знать непосредственно эти языки-источники и лежащую в их основе формальную базу. То есть чем более широк профессиональный кругозор программиста, тем лучше он сможет программировать на C++. Однако на практике положительная оценка и предпочтение использования C++ характерны преимущественно для программистов, не владеющих ни одним языком, не являющимся потомком Алгола (не считая ограниченного набора узкоспециализированных языков, таких как SQL, HTML, Perl и др.). Те же, кто имеет опыт использования языков, построенных на иной теоретической базе, чаще отзываются о C++ скептически и стараются его избегать, если нет вынужденности поддерживать унаследованный код. Это даёт основания полагать, что существует обратная зависимость между умением программировать на C++ в «хорошем» стиле и желанием использовать C++ в качестве инструмента разработки, из которой следует, что защищающие C++ программисты, по всей видимости, заблуждаются в отношении того, что именно следует считать «хорошим» стилем программирования.