C++

**C++** 1979an Bjarne Stroustrup-ek diseinatutako programazio-lengoaia bat da. Objektuen manipulazioa ahalbidetzen duten mekanismoak C programazio-lengoaiara zabaltzea izan zen haren sorkuntzaren asmoa. Zentzu horretan, objektuetara bideratutako lengoaien ikuspegitik, C++ lengoaia hibridoa da.

Ondoren, programazio generikoaren erraztasunak gehitu ziren, eta horiek programazio egituratuaren paradigmei eta objektuetara bideratutako programazioari gehitu zitzaizkien. Horregatik esan ohi da C++ programazio-lengoaia multiparadigma bat dela.

Gaur egun, ISO C++ izeneko estandar bat dago, eta horri atxiki zaizkio konpiladore modernoenen fabrikatzaile gehienak. Badira interprete batzuk ere, ROOT kasu.

## Historia 
[thumb|[Bjarne Stroustrup, C++ lengoaiaren sortzailea]]
1979an, Bjarne Stroustrup informatikari daniarra C++ lengoaiaren aurretikoa den "*C with Classes*" proiektuarekin lanean hasi zen. Programazio-lengoaia berri bat sortzeko motibazioa Stroustrup-i bere doktore-tesian programazioan izandako esperientziatik sortu zitzaion. Stroustrup ohartu zen Simulak bazituela tamaina handiko softwarea garatzeko oso baliagarriak ziren ezaugarriak, baina lengoaia motelegia zela erabilera praktikorako; BCPL, aldiz, azkarra zen baina oso behe-mailakoa tamaina handiko softwarea garatzeko egokia izateko. Stroustrup AT&T Bell Labs-en lanean hasi zenean, Unixen kernela aztertzen aritu zen, konputazio banatuari dagokionez. Bere doktorego esperientzia gogoratuz, Stroustrupek C lengoaia hobetzea proposatu zuen Simularen antzeko ezaugarriekin. C aukeratu zen, erabilera orokorrekoa, azkarra, eramangarria eta oso erabilia zelako. C eta Simula programazio-lengoaien eragina izateaz gain, beste hainbat lengoaiak ere izan zuten eragina lengoaia berrian, ALGOL 68, Ada, CLU eta ML barne.

Hasiera batean, C-ren Cpre konpiladoreari hainbat ezaugarri gehitu zitzaizkion Stroustrup-en *"C with Classes"* lengoaiarako: klaseak, klase eratorriak, datu-moten erabilera zurruna, i*nline expansion* eta argumentu lehenetsien erabilera, besteak beste.

1982an hasi zen Stroustrup "*C with Classes*"-en ondorengo izango zen programazio-lengoaia garatzen, eta hasiera batean beste izen batzuk erabili bazituen ere, azkenean "C++" izena jarri zion ( `++` ikurra inkrementu- edo gehikuntza-eragilea da C programazio-lengoaian). Ezaugarri berriak gehitu zizkion: funtzio birtualak, erreferentziak, konstanteak, datu-moten kontrol hobetua, iruzkinak lerro bakarrean egiteko bi barra ( `//`) erabiltzea BCPL lengoaian bezala, etab. Gainera, C++ -erako konpiladore independente berri bat garatu zuen: Cfront.

1985ean C++ programazio-lengoaiaren (*The C++ Programming Language*) lehen edizioa argitaratu zen. Garai hartan oraindik estandar ofizialik ez zegoenez, bertsio hura lengoaiarako erreferentzia bihurtu zen. Lehen inplementazio komertziala urte bereko urrian argitaratu zen.

2018an Stroustrupek *Charles Stark Draper Prize* saria jaso zuen "C++ programazio-lengoaia kontzeptualizatu eta garatzeagatik".

2019an programazio-lengoaia zabalduenen artean laugarren postuan dago C++, Javaren, Cren eta Pythonen atzetik.

### Etimologia 
Stroustrupen arabera, "C++ izenak C-ren aldaketen izaera ebolutiboa adierazten du". Izen hori Rick Mascitti-k eman zion 1983an eta orduan hasi zen erabiltzen lehen aldiz. C programazio-lengoaian erabiltzen den `++` inkrementu- edo gehikuntza-eragiletik dator (aldagai baten balioaren inkrementua). Gainera, "+" ikurrarekin lengoaia areagotu edo hobetu dela adierazi nahi izan zen.

C++ lengoaiaren garapenak iraun zuen bitartean, *"new C"* (C berria) eta *"C with Classes"* (C klaseekin) izenak ere erabili ziren hura izendatzeko.

### Estandarizazioa 
JTC1/SC22/WG21 izenez ezagutzen den ISO lantaldeak estandarizatzen du C++. Orain arte, C++ estandarraren bost berrikuspen argitaratu ditu.

1998an sortu zuen lehen C++ estandarra ISO lantaldeak. Modu informalean C++98 izenez ezagutzen da lehen estandar hori (*ISO/IEC 14882:1998*).

2003an argitaratu zuten C++ estandarraren bertsio berria (*ISO/IEC 14882:2003*) , C++98 bertsioan identifikatutako arazoak konpontzen zituena.

Estandarraren hurrengo berrikuspen nagusia *"C++0x"* izenez izendatua izan zen modu informalean, baina 2011ra arte ez zen argitaratua izan. *C++11 bertsioak* lengoaian bertan eta liburutegi estandarrean gehikuntza asko jaso zituen.

2014ean C++14 (edo informalki *C++1y*) argitaratu zen. Funtsean aurreko *C++11* estandarraren hedapen txiki bat zen; akatsen zuzenketak eta hobekuntza txikiak jaso zituen.

2017an beste berrikuspen nagusi bat argitaratu zen, C++17 (edo informalki *C++1z*).

Gaur egun, hurrengo berrikuspena izango den C++20rekin ari da lanean ISO lantaldea.

## Ezaugarriak 
Atal honetan laburbiltzen dira C++ programazio-lengoaiaren oinarrizko ezaugarri batzuk: datu-motak, kontrol-egiturak, funtzioak idazteko modua, etab..

### Sarrera/Irteera funtzioak 
C++ lengoaian badago aukera C lengoaiako `printf` eta `scanf` funtzioak erabiltzeko, baina horiez gain, beste bi funtzio daude: `cin` datuen sarrerako funtzioa eta `cout` irteerarako funtzioa. Adibidez:
```c++
cin >> balio; // Horrela balio aldagaiari datu bat ematen zaio.
cout , `>`, `==`, , `>=` eta `!=`.

Eragile horiez gain, nabarmentzekoak dira inkrementu (`++`) eta dekrementu (`--`) eragileak.

### Adibideak 
*Kaixo mundua* adibidea C++ programazio-lengoaian:
```c++
#include 
using namespace std;
    
int main(){
    
    cout<< " Kaixo mundua! ";
    
    return 0;
    
}
```

## Erreferentziak 
## Ikus, gainera 
* Programazio-lengoaia
* C
* C#
* BASIC
* Visual C.NET
* Visual Basic.NET
* .NET Framework
* Visual Studio.NET
* ASP.NET
* ADO.NET
* CLR
* .NET Show
* .NET
* .NET oinarri klase liburutegia

## Kanpo estekak