C++ (արտասանվում է ինչպես սի փլաս փլաս ˌsiːˌplʌsˈplʌs) ընդհանուր նշանակության ծրագրավորման լեզու, որը համարվում է «միջին-մակարդակի» լեզու, քանի որ թույլատրում է ինչպես ցածր մակարդակի, այնպես էլ բարձր մակարդակի ծրագրավորում։ Այն ստատիկորեն տիպավորվող, բազմապիսի մոտեցումներ թույլատրող (multi-paradigm), սովորաբար կազմակվող (կոմպիլյացվող) լեզու է:
Բյորն Ստրաուստրուպը, ստեղծեց C++ լեզուն Bell Labs-ում 1979 թ.-ին, որպես C ծրագրավորման լեզվի բարելավում և անվանեց այն "C with Classes": 1983 թ.-ին այն վերանվանվեց C++ -ի։
C++ -ը ամենատարածված ծրագրավորման լեզուներից է։ Կիրառման ոլորտներից են համակարգային ծրագրավորումը, կիրառական ծրագրերի ստեղծումը, ֆիզիկական սարքավորումների՝ օպերացիոն համակարգի հետ կապի ապահովման ծրագրերի ստեղծումը, բարձր արդյունավետությամբ աշխատող սերվեր և օգտագործող ծրագրերի ստեղծումը, ինչպես նաև, ներդրված ծրագրերի և համակարգչային խաղերի ստեղծումը։
Լեզուն առաջացել է 1980-ական թվականների սկզբին, երբ Bell Labs ընկերության աշխատակից Բյորն Ստրաուստրուպը սեփական կարիքների համար մի շարք կատարելագործումներ մտածեց C ծրագրավորման լեզվի համար: Երբ 1970-ականների վերջում Ստրաուստրուպը սկսեց աշխատել Bell Labs-ում հաջորդականությունների տեսության առաջադրանքների վրա (հեռախոսների մոդելավորման հավելվածում), նա բացահայտեց, որ այդ ժամանակ գոյություն ունեցող մոդելավորման լեզուների կիրառման փորձերը արդյունավետ չէին, իսկ բարձր արդյունավետություն ունեցող մեքենայական լեզուների կիրառումը չափազանց բարդ է՝ նրանց սահմանափակ արտահայտչականության պատճառով։ Այսպես, Սիմուլա (ծրագրավորման լեզու) լեզուն ունի այնպիսի հնարավորություն, որ մեծ ծրագրային ապահովման մշակման ժամանակ բավականին օգտակար կլինի, սակայն այն շատ դանդաղ է աշխատում։ Իսկ BCPL լեզուն բավականին արագ է աշխատում, սակայն շատ մոտ է ցածր մակարդակի լեզուներին և չի կարող կիրառվել մեծ ծրագրային ապահովում մշակման ժամանակ։
Հիշելով ատենախոսության իր փորձը, Ստրաուստրուպը որոշեց ավելացնել C լեզվի (որի իրավահաջորդը BCPL-ն է) հնարավորությունները, մատչելի Սիմպուլա լեզվով։ C լեզուն, լինելով հիմնարար լեզուն UNIX համակարգի, որի վրա աշխատել են Bell համակարգիչները, արագ են, բազմաֆունկցիոնալ և շարժական։ Ստրաուստրուպը ավելացրել էր հնարավորություն տալիս աշխատել դասերով և օբյեկտներով։ Արդյունքում գործնական խնդիրները մոդելավորման դարձավ մատչելի լուծելու ինչպես ժամանակի տեսանկյունից մշակման (շնորհիվ օգտագործման Սիմպուլա-նման դասերի), այնպես էլ ժամանակի տեսանկյունից հաշվարկներով (շնորհիվ արագ աշխատող C-ի)։ Առաջին հերթին C է եղել ավելացվել դասեր (ինկափսուլացիայով), դասերի ժառանգումը, խիստ ձևերի ստուգում, inline-գործառույթները և default փաստարկները։ Վաղ լեզվի տարբերակը, սկզբնապես անվանվել էր «C with classes» («Սի դասերով»), դարձավ հարսանելի 1980 թվականից։
Մշակելով C դասով, Ստրաուստրուպ գրեց cfront ծրագիրը - տրանսյլատոր, վերամշակման հենակետային կոդը C-ն դասով հենակետային կոդում պարզապես C: Որը թույլ տվեց աշխատել լեզվի հետ և օգտագործել այն պրակտիկայում, կիրառելով նախապես գոյություն ունեցող UNIX-ի ենթակառուցվածքը C-ն մշակելու համար։ Նոր լեզուն, անսպասելի էր հեղինակի համար, ձեռք բերեց մեծ տարածվածություն իր գործընկերների շրջանում և շուտով Ստրաուստրուպը չի կարող անձամբ աջակցել դրան, պատասխանեց մոտ հազար հարցի։
1983 թ. լեզվում ավելացվեց նոր հնարավորություններ, ինչպիսիք են. վիրտուալ ֆունկցիաները, ֆունկցիաների և օպերատորների գերբեռնվածությունը, հղումները, հաստատունները, օգտվողի վերահսկողությունը ազատ հիշողության կառավարման, բարելավվել էր ձևի ստուգումը և նոր ոճ (//) մեկնբանություններին։ Ստացված լեզուն արդեն դադարեց պարզապես լինել լրացվաց տարբերակ դասական C-ին և վերանվանվեց C-ն դասերով ից «C++»: Առաջին կոմերցիոն թողարկումը եղել է 1985 թվականի հոկտեմբերին։
Սկզբում օֆիցիալ լեզվի ստանդարտացման զարգացումը հիմնականում եղել է Ստրաուստրուպի ուժերով ի պատասխան ծրագրավորման հասարակությանը։ Ստանդարտ լեզվի ֆունկցիաների նկարագրություններ, գրել է Ստրաուստրուպը C++-ի աշխատանքները հրապարակելուց (լեզվի նկարագրությունը, հղումը ուղեցույցը և այլն)։ Միայն 1998 թվականին վավերացվեց C++ լեզվի միջազգային ստանդարտը՝ ISO/IEC 14882:1998 «Standard for the C++ Programming Language»; հետո 2003 թվականին ստանդարտի տեխնիկական ուղղումները կատարելուց - ստեղծվեց ստանդարտի հաջորդ տարբերակը - ISO/IEC 14882:2003: