استراس تروپ کار روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس تروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگی های مناسب برای ساخت برنامه های بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامه های بزرگ بسیار سطح پایین است. زمانی که استراس تروپ کار خود را در آزمایشگاه های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود.
با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگی های سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبان های دیگری مانند۶۸ ALGOL ، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگی های کلاس، کلاس های مشتق شده، کنترل نوع قوی، توابع درون خطی و آرگومان پیش فرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد. در سال ۱۹۸۳ نام زبان از «C با کلاس» به++ C تغییر یافت. ویژگی های دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامه نویسی ++ C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش ۲/۰ از زبان ++ C ارائه شد.
ویژگی های جدیدی مانند ارث بری چندگانه، کلاس های انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++ C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگی های اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی. در حین تکامل++ C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهم ترین ویژگی اضافه شده Standard Template Library بوده است.
● استاندارد زبان
بعد از سال ها کار کمیته مشترک ANSIISO در سال ۱۹۹۸ ++ C را استاندارد نمودند (ISO/IEC ۱۴۸۸۲ :۱۹۹۸). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++ C منتشر شد. در سال ۲۰۰۵ گزارشی فنی بنام «گزارش فنی کتابخانه ۱» (که معمولاً بصورت اختصار TR۱ خوانده می شود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخش هایی را به آن اضافه نموده که انتظار می رود در نسخه های بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است. در حالی که ++ C به هیچ مؤسسه ای وابسته نیست این مستندات بصورت آزادانه در دسترس نیستند.
● نام ++ C
این نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام «C جدید» و بعدها «C با کلاس» خوانده شد. در علوم کامپیوتر هنوز هم ++ C به عنوان ابرساختار C شناخته می شود. آخرین نام از عملگر ++ در زبان C (که برای افزایش مقدار متغیر به اندازه یک واحد بکار می رود) و یک عرف معمول برای نشان دادن افزایش قابلیت ها توسط + ناشی گشته است. با توجه به نقل قولی از استراس تروپ: «این نام ویژگی ها تکاملی زبان در C را نشان می دهد.»+ C نام زبانی غیرمرتبط به این زبان است. استراس تروپ مبدا این نام را در فصل اول کتاب خود «زبان برنامه نویسی ++ C » اشاره می نماید که معنی دیگر ++ C را می توان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت. در سه قسمت از زبان تخیلی Newspeak «کلمات C» برای اشاره به لغات فنی و حرفه ای بکار می رود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار می رفت بنابراین ++ C به معنای زبانی با بیشترین شباهت به C است. وقتی که به صورت خصوصی از ریک ماسکیتی در مورد این اسم سؤال شد او در جواب گفت که این اسم بصورت خودمانی در بین آنها به کار می رفته است و تصور نمی کردند که این نام بصورت نام رسمی این زبان درآید.
● توسعه آینده
++ C همچنان در حال تکامل است تا نیازهای آینده را پاسخگو باشد. نسخه جدید استاندارد ++ C در حال بررسی است و تحت عنوان C++۰x است که انتظار می رود در سال ۲۰۱۰ منتشر گردد. تغییرات کنونی نشان می دهد که که همچنان به صورت چندمدلی++ C تأکید می گردد. توسعه های مهم پشتیبانی از چندرشته ای و مفاهیمی برای راحت نمودن کار با قالب هاست. اضافه نمودن ویژگی جمع آوری زباله به آن به شدت مورد بحث است. Boost.org گروهی برای بیشترین استفاده از ویژگی های فعلی ++ C می باشد. آنها ویژگی های تابعی و فرابرنامه نویسی آن را گسترش می دهند و در مورد ++ C به کمیته استاندارد نصیحت هایی نموده است که کدام ویژگی ها خوب عمل نمی کنند و کدام ها نیاز به توسعه دارند.