[nekontrolita versio][kontrolita revizio]
Enhavo forigita Enhavo aldonita
Forviŝis la tutan enhavon el la paĝo
Etikedoj: Poŝtelefona redakto Redakto de poŝaparata retejo
Eurodyne (diskuto | kontribuoj)
e Forigis redaktojn de 94.254.164.46 (diskuto); restarigis al la lasta versio de Venca24
Linio 1:
{{Informkesto programlingvo
|nomo = C++
|logobildo =
|paradigmo = [[Plurparadigma programlingvo|Plurparadigma]]:<br />[[Objektema programado|Objektema]], [[Ĝenerala programado|Ĝenerala]], [[Procedura programado|procedura]] programado
|jaro = [[1985]]
|aŭtoro = [[Bjarne STROUSTRUP]]
|tipa = statika, strikta
|realigoj = [[Microsoft]] [[Visual C++]], [[Borland]] [[C++ Builder]], [[GCC|GNU C++]]
|dialektoj = ANSI C++ 1998 , ANSI C++ 2003
|klasoj = [[Tradukilo|tradukila]]
|influita = [[C (programlingvo)|C]], [[Simula]], [[Ada|Ada 83]], [[ALGOL]], [[CLU]]
|influis = [[Ĝavo]], [[C dieso (programlingvo)|C#]], [[Ada|Ada 95]], [[D (programlingvo)|D]]
}}
'''C++''' estas programlingvo inventita de [[Bjarne Stroustrup]] dum la [[1980-aj jaroj]], kiam li laboris en [[Bell Labs]]. Li intencis, ke ĝi estu [[objektema]] ido de [[C (programlingvo)|C]], kaj pro tio li unue nomis ĝin "C Kun Klasoj" (angle "C With Classes").
 
C++ estas preskaŭ plene kongrua kun C. Tradukilo de C++ ofte povas traduki C-programojn, kaj oni povas ligi kaj C-funkciojn kaj C++-funkciojn en unu programo.
 
La lingvo estas konsiderata kiel [[plurparadigma programlingvo]], ĉar ĝi ebligas programi per pluraj stiloj, ekzemple laŭ ordonema, datumtip-ĝenerala ([[metaprogramado]]), modulema aŭ objektema programadoj.
 
C++ influis la kreadon de aliaj lingvoj, ekzemple [[Java (programlingvo)|Java]], [[C dieso (programlingvo)|C#]] kaj [[D (programlingvo)|D]]. Tamen, el tiuj lingvoj nur C++ subtenas multoblan heredadon (t.&nbsp;e. klaso povas heredi de pli ol unu gepatra klaso).
 
Dum la [[1990-aj jaroj]], la programlingvo C++ ekestis unu el la plej uzataj programlingvoj. En [[1998]], la internacia organizo [[Internacia Organizo por Normigado|ISO]] normigis C++ kiel ''ISO/IEC 14882:1998''. La nuna versio de tiu normo estas ''ISO/IEC 14882:2003'', kiu nur korektis kaj klarigis detalojn de la programlingvo. Nuntempe, nova normo estas kreata, provizore nomata ''C++0x'', kiu ja aldonos plurajn esprimilojn al la programlingvo.
 
== Filozofio ==
 
Bjarne Stroustrup projektis C++-on laŭ kelkaj reguloj, kiujn li klarigis en la libro ''The Design and Evolution of C++''. Oni povas resumi la filozofion de C++ jene:
* C++ estas projektita kiel statiko-tipigebla programlingvo, ĝeneralcela programlingvo, kiu estas tiel rapida kiel C.
* C++ subtenas plurajn programparadigmojn.
* En C++ la programisto povas libere elekti tion, kion li preferas, eĉ se foje tio ebligas al li fari malbonan elekton.
* C++ estas kongrua kun C, tiom kiom eblas.
* C++ evitas platformspecifajn esprimilojn.
* La esprimiloj, kiujn la programisto ne uzas, ne igas la programon pli malrapida (nek pli granda).
* Oni povas uzi C++-on sen kompleksa programarmedio.
 
== Esprimiloj prezentitaj en C++ ==
 
C++ aldonis multajn esprimrimedojn al C. La plej konata estas [[klaso]]j, kiuj faciligas objekteman programadon. Per klasoj, oni povas aldoni funkciojn al datumstrukturoj, kaj igi tiujn strukturojn funkcii samkiel simplaj datumtipoj de la lingvo.
 
[[template|Ŝablono]] (angle ''template'') estas la nomo de tre grava novaĵo prezentita de C++. Ŝablonoj unue estis kreitaj simple por ebligi la kreadon de datumstrukturoj, kiuj povas enhavi ian ajn datumtipon. Aliaj lingvoj, ekzemple [[Ada]], jam antaŭe havis tian esprimilon. Poste, oni rimarkis, ke oni povas uzi ŝablonojn por aliaj celoj dum la tradukado de la programo. Ĉar ili ebligas kaj rekursion kaj decidojn, oni povas esprimi ian ajn komputon dum la traduko de la programo, tio estas, antaŭ la lanĉo de la tradukita programo. Tial oni nomas tiun paradigmon metaprogramado.
 
Krome, C++ aldonis plurajn etajn plibonigojn kompare kun C, ekzemple referencojn, homonimigon de funkcioj, unuliniajn komentojn (kiuj komenciĝas per <code>//</code>), la tipon <code>[[Bulea valoro|bool]]</code>, la operatorojn <code>new</code> kaj <code>delete</code>, ktp.
 
== Ekzemplaj programoj ==
 
Tradicie, la unua programo, kiun oni lernas en ĵus ekkonita programlingvo, estas tre simpla programo, kiu nur montras la tekston "Saluton, mondo!" (angle: "Hello, world!") kaj finiĝas.
Jen tiu programo skribita en C++:
<syntaxhighlight lang="cpp">
#include <iostream> // por havigi std::cout
 
int main(void)
{
std::cout << "Saluton, mondo!" << std::endl;
return 0;
}
</syntaxhighlight>
 
La linio <code>return 0;</code>, kiu finas la programon kun sukcesa kodo (0 signifas sukceson ĉi-okaze), estas laŭ la normo de C++ aŭtomate aldonita al la funkcio <code>main</code> (''nur'' al <code>main</code>), se oni ne uzas ĝin. Iuj preferas uzi ĝin pro stilaj motivoj. La tipo de <code>main</code> devas esti ĉiam <code>int</code>, eĉ kiam oni ne uzas <code>return 0;</code>.
 
== Eksteraj ligiloj ==
* [http://www.open-std.org/jtc1/sc22/wg21/ JTC1/SC22/WG21 - C++] Paĝo de la komitato de la normo de C++ (angle)
* [http://mindview.net/Books/TICPP/ThinkingInCPP2e.html Thinking in C++] Senpaga libro de Bruce Eckel (angle)
* [http://www.boost.org/ Boost.org] Pluraj bibliotekoj por kunlabori kun la norma biblioteko de C++ (angle)
 
[[Kategorio:Programado]]
[[Kategorio:C++| ]]