ĝeneralcela plurparadigma programlingvo From Wikipedia, the free encyclopedia
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, kaj pro tio li unue nomis ĝin "C Kun Klasoj" (angle "C With Classes").
C++ | |
---|---|
objektema programlingvo • multparadigma programlingvo • proceda programlingvo • funkcia programlingvo • komuna programlingvo • programlingvo • liberforma programlingvo • tradukata programlingvo | |
Paradigmo: | Plurparadigma: Objektema, Ĝenerala, procedura programado |
Paradigmo(j): objektema programado • funkcia programado • proceda programado • komuna programado • multparadigma programado | |
Aperis en: | 1985 |
Aŭtoro(j): | Bjarne STROUSTRUP |
Tipa sistemo: | statika, strikta |
Ĉefaj realigoj: | Microsoft Visual C++, Borland C++ Builder, GNU C++ |
Programlingva(j) dialekto(j): | ANSI C++ 1998 , ANSI C++ 2003 |
Kreita sub la influo de: | C, Simula, Ada 83, ALGOL, CLU |
Havas influon sur: | Ĝavo, C#, Ada 95, D |
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, C# kaj D. Tamen, el tiuj lingvoj nur C++ subtenas multoblan heredadon (t. 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 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.
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++ aldonis multajn esprimrimedojn al C. La plej konata estas klasoj, kiuj faciligas objekteman programadon. Per klasoj, oni povas aldoni funkciojn al datumstrukturoj, kaj igi tiujn strukturojn funkcii samkiel simplaj datumtipoj de la lingvo.
Ŝ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 //
), la tipon bool
, la operatorojn new
kaj delete
, ktp.
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++:
#include <iostream> // por havigi std::cout
int main(void)
{
std::cout << "Saluton, mondo!" << std::endl;
return 0;
}
La linio return 0;
, kiu finas la programon kun sukcesa kodo (0 signifas sukceson ĉi-okaze), estas laŭ la normo de C++ aŭtomate aldonita al la funkcio main
(nur al main
), se oni ne uzas ĝin. Iuj preferas uzi ĝin pro stilaj motivoj. La tipo de main
devas esti ĉiam int
, eĉ kiam oni ne uzas return 0;
.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.