C++ yazılım dili C’nin evrim geçirmiş bir versiyonu olmakla beraber, ikisinin de ataları BCPL ve B dir. BCPL 1967 yılında Martin Richards tarafından işletim sistemleri ve derleyicileri üretmek için yazıldı. Ken Thompson B yi kullanarak Unix sistemlerinin 1970 yılında ilk versiyonunu Bell Labaratuarlarında yazdı. Bu yazılım için ise Digital Equipment Corparation PDP-7 bilgisayarlarını kullanmıştı. Hem BCPL hemde B türsüz birer yazılım diliydi, yani her veri türü bellekte bir kelimeden oluşuyordu. Dolayısıyla, bir veri türünün tam sayı yada doğal sayı, yani günümüzdeki karşılığıyla int yada double olduğunu belirlemek programcıya kalmıştı.

C yazılım dilini Bell Laboratuarlarında geliştiren Denis Ritchie, fikirlerinin büyük bir kısmını B yazılım dilinden edinerek bu evrimin gerçekleşmesinde büyük rol oynamıştır. Bu tasarım için ise 1972 yılında DEC PDP-11 tipi bilgisayar kullanılmıştı. C ilk olarak UNIX operating sistemini yazarken kullanılan dil olarak meşhur olmuş ve günümüzde ise halen hemen hemen tüm işletim sistemleri C veya C++ ile yazılmaktadır. Son 20 yılda, C yazılım dili birçok bilgisayar platformu için edinilebilir bir duruma erişmiştir. C’nin en büyük özelliklerinden biri donanım bağımsız olmasıdır, yani dikkatli bir tasarım ile herhangi bir donanımda C uygulaması yaratmak mümkündür.

1970’li yılların sonlarına doğru C gelişimini tamamlamış ve şu anda geleneksel C olarak bilinen halini almıştır. C++ ise C yazılım dilinin devamıdır. 1980 li yılların başında yine Bell Laboratuarlarında Bjarne Stroustup tarafından geliştirilmiştir. ANSI ve İSO standartlarına uygun olan bu yazılım dilinin en büyük avantajı nesne yönelimli bir yazılım dili olmasıdır.

Yazılım dünyasında bir devrim oldu. Hızlı ama hem ekonomik hemde doğru olarak yazılım gerçekleştirmek hala bir hedef olsa da, C++ hala bugün çok kullanılan bir dil olması ne kadar iyi bir temelin üzerine inşa edilmiş olmasının bir kanıtıdır. Nesneler temel olarak bir yazılımcının birçok kez kullanabileceği program parçacıkları olması yazılımcılar tarafından keşfedilince, bunun önceki yazılım modellerinden daha hızlı ve daha sağlam yazılımlar için kullanılabileceği dikkate alınmaya başlandı. Nesne yönelimli yazılımlar genelde daha kolay anlaşılabilen, daha doğru ve değiştirilmesi daha kolaydır. C++ yazılım dilinin en büyük özelliklerinden bir diğeri ise hem C türü eski tarz yazılımlara hemde nesne yönelimli yeni yazılım modeline yer vermesidir.