C++ (си плас-плас ё си-плюс-плюс[1][2] хонда мешавад) — забони барноманависии роёнаии ҳамаманзура, ҳамгардон, сатҳи миёнӣ, шайъгаро, умумӣ бо қобилиятҳои сатҳи боло ва сатҳи поин мебошад.

C++
Таърихи таъсис 1983
Логотип
Нигора
Пазируфтаи асари Си, Simula, Алгол 68, CLU[d], ML ва Ада
Парадигми барноманависӣ барноманависии шайъгаро, functional programming[d], procedural programming[d], generic programming[d] ва multi-paradigm programming[d]
Тавсеъадиҳанда Bjarne Stroustrup[d]
Тарроҳ Bjarne Stroustrup[d]
Махзани коди манбаи репозиторӣ github.com/cplusplus/dra…
Вебгоҳи расмӣ isocpp.org(англ.)
Хештеги cpp ва cplusplus
Икон
Навъи медиа text/x-c ва text/plain
Аъзои стандартгузорӣ ISO[d] ва International Electrotechnical Commission[d]
Typing discipline static typing[d], nominative typing[d] ва partial inference typing[d]
Пешванди парванда .cc, .cpp, .cxx, .c, .c++, .h, .hpp, .hh, .hxx ё .h++
 Парвандаҳо дар Викианбор

Таърих

вироиш

C++ тавассути Бйёрн Страуструп риёзидони Данияӣ дар соли 1979 дар Озмоишгоҳҳои Белл (Bell Labs), барои беҳбуди забони Сӣ ва бар мабнои он сохта шуд ва онро «С бо клас» (C With Classes) номгузорӣ намуд. Дар соли 1983 ба C++ тағйири ном дод. Тавсеа бо изофа намудани класҳо ва вежагиҳои дигаре монанди тобеъҳои маҷозӣ, сарборгузории амалгарҳо, варосати чандгона, қолаби тобеъҳо, ва пардозиши истисноъ анҷом шуд. Ин забони барноманависӣ соли 1998 таҳти номи ISO/IEC 14882:1998 стандарт шуд. Нусхаи феълии стандарти ин забон ISO/IEC 14882:2014 аст.[3][4]

C++ бо барномасозии системавӣ ва нармафзори дарунсохташуда, маҳдуди захираҳо ва системаҳои калон бо дарназардошти фаъолият, самаранокӣ ва чандирии истифода ҳамчун нуктаи муҳими тарҳи он тарҳрезӣ шудааст. C++ инчунин дар бисёр контекстҳои дигар муфид пайдо шудааст, ки ҷиҳатҳои асосии инфрасохтори нармафзор ва барномаҳои аз ҷиҳати захираҳо маҳдудшуда аз ҷумла барномаҳои мизи корӣ, бозиҳои видеоӣ, серверҳо (масалан, тиҷорати электронӣ, ҷустуҷӯи веб ё пойгоҳи додаҳо) ва иҷрои барномаҳои муҳим (масалан, коммутаторҳои телефонӣ ё зондҳои фазоӣ).

C++ аз ҷониби Созмони Байналмилалии Стандартизатсия (ISO) стандартизатсия шудааст, ки версияи охирини стандартӣ аз ҷониби ISO моҳи декабри соли 2020 ҳамчун ISO/IEC 14882:2020 (ғайрирасмӣ бо номи C++20 маълум) тасдиқ ва нашр шудааст. Забони барномасозии C++ дар аввал соли 1998 ҳамчун ISO/IEC 14882:1998 стандартизатсия карда шуд, ки баъдан бо стандартҳои C++03, C++11, C++14 ва C++17 ислоҳ карда шуд. Стандарти кунунии C++ 20 онҳоро бо хусусиятҳои нав ва китобхонаи стандартии васеъшуда иваз мекунад. Пеш аз стандартизатсияи ибтидоӣ дар соли 1998, C++ аз ҷониби Stroustrup дар Bell Labs аз соли 1979 ҳамчун тавсеаи забони C таҳия шудааст; ӯ мехост, ки забони муассир ва чандир монанд ба C, ки инчунин хусусиятҳои сатҳи баландро барои ташкили барнома таъмин намояд. Аз соли 2012, C++ дар ҷадвали барориши сесола бо C++23 ҳамчун стандарти навбатии банақшагирифта шудааст.

Фалсафаи C++

вироиш

Фалсафаи забони барномасозии C++ дар «Тарроҳӣ ва эволютсияи C++» (1994) аз ҷониби Бярн Строуструп гузошта шудааст. Фаҳмидани фалсафа ё қоидаҳои C++ ба мо кӯмак мекунад, ки фаҳмем, ки чаро баъзе чизҳо дар C++ чунинанд.

Ин аст мухтасари фалсафаи C++:

вироиш
  1. Барномасоз бояд дар интихоби парадигмаи барномасозии худ озод бошад (барномасозии расмиётӣ, барномасозии ба объект нигаронидашуда, барномасозии умумӣ ва абстраксияи додаҳо)
  2. Забон бояд бо C мувофиқ бошад. Гузариш аз C ба C++ набояд душвор бошад.
  3. Ҳар як хусусият дар забон бояд барои мақсадҳои умумӣ сохта шавад. Хусусиятҳо набояд ба платформа хос бошанд.
  4. Забон бояд барои кор кардан бидуни муҳити мураккаби барномасозӣ тарҳрезӣ шавад (коди C++ ҳатто метавонад дар блокнот оддӣ навишта шавад).
  5. Забон бояд ба таври статикӣ чоп карда шавад ва барои мақсадҳои умумӣ. Он бояд ҳамчун C сайёр бошад, яъне рамзи дар як компютер навишташуда бояд дар компютери дигар қобили истифода бошад ва дар код каме тағирот талаб карда намешавад.
  6. Забон бояд ба барномасозон имкон диҳад, ки интихоби худро интихоб кунанд (интихоб кардани намудҳои гуногуни тағирёбанда, ҷудо кардан ва ҷудо кардани хотира мувофиқи ниёзҳои барнома ва ғайра), ҳатто агар он эҳтимолияти интихоби нодурусти барномасозро зиёд кунад.
  7. Забон набояд барномаро суст накунад ё барои хусусиятҳое, ки дар код истифода намешаванд, фосила (сарбори) истеъмол кунад.
  8. Зери C++ набояд забоне набошад, ба ҷуз забони ассемблер.

Дастурҳои асосии C++

вироиш

Дастурҳои асосии C++ ташаббусест, ки аз ҷониби Бжарн Строуструп, ихтироъкори C++ ва Ҳерб Саттер, даъваткунанда ва раиси Гурӯҳи кории ISO C++, барои кӯмак расонидан ба барномасозон дар навиштани "C++ муосир" бо истифода аз таҷрибаҳои беҳтарин барои забон стандартҳои C++11 ва навтар ва кӯмак ба таҳиягарони компиляторҳо ва асбобҳои санҷиши статикӣ дар эҷод кардани қоидаҳо барои дастгир кардани таҷрибаҳои бади барномасозӣ.

Ҳадафи асосӣ самаранок ва пайваста навиштани навъи C++ ва захираҳои бехатар мебошад.

Дастурҳои асосӣ дар сухани ифтитоҳии CPPCon 2015 эълон карда шуданд.

Роҳнамо бо Китобхонаи Дастгирии Дастур (GSL),[83] танҳо як китобхонаи сарлавҳаи намудҳо ва функсияҳо барои татбиқи Роҳнамои асосӣ ва абзорҳои санҷиши статикӣ барои иҷрои қоидаҳои Дастур ҳамроҳ карда мешавад.

Намунаҳои барнома

вироиш

Намунаи барномаи Hello, world!

вироиш

Дар зер намунаи барномаи Hello, world!, ки бо истифода аз китобхонаи стандарт ва ҷараёнҳои хурӯҷӣ як матнро ба хурӯҷии стандарт ирсол менамояд.

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}
  1. Губина Г. Г. Компьютерный английский. Ч. I. Computer English. Part I. Учебное пособие. — С. 385.
  2. Bjarne Stroustrup's FAQ(англ.). Bjarne Stroustrup (Ocober 1, 2017). — «The name C++ (pronounced "see plus plus")»  4 Декабри 2017 санҷида шуд. Баргирифта аз сарчашмаи аввал 6 феврали 2016.
  3. 14:00-17:00. ISO/IEC 14882:2011(англ.). ISO. 10 май 2019 санҷида шуд.
  4. Learn C++. www.learncpp.com. 10 май 2019 санҷида шуд.