C++: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
ten sam tekst komentarza mieści się w mniejszej ilości linijek
drobne techniczne, drobne redakcyjne, uproszczenie przykładu (bez włączania przestrzeni nazw, \n zamiast std::endl, które dodatkowo czyści bufor wyjścia), aktualizacja wstępu (C++17, C++20)
Linia 18:
| www = https://isocpp.org
}}
'''C++''' – [[język programowania]] ogólnego przeznaczenia. Język został zaprojektowany przez [[Bjarne Stroustrup]]a jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i silną statyczną kontrolę typów. Zachowanie zgodności z językiem C na poziomie kodu źródłowego pozostaje jednym z podstawowych celów projektowych kolejnych standardów języka.
'''C++''' – [[język programowania]] ogólnego przeznaczenia.
 
Umożliwia [[Abstrakcja (programowanie)|abstrakcję]] danych oraz stosowanie kilku paradygmatów programowania: [[Programowanie proceduralne|proceduralnego]], [[Programowanie obiektowe|obiektowego]] i [[Programowanie uogólnione|generycznego]]. Charakteryzuje się wysoką wydajnością [[kod wynikowy|kodu wynikowego]], bezpośrednim dostępem do [[zasoby sprzętowe|zasobów sprzętowych]] i funkcji systemowych, łatwością tworzenia i korzystania z [[Biblioteka programistyczna|bibliotek]] (napisanych w C++, [[C (język programowania)|C]] lub innych językach), niezależnością od konkretnej platformy sprzętowej lub systemowej (co gwarantuje wysoką przenośność kodów źródłowych) oraz niewielkim środowiskiem uruchomieniowym. Podstawowym obszarem jego zastosowań są [[Oprogramowanie użytkowe|aplikacje]] i [[System operacyjny|systemy operacyjne]].
Charakteryzuje się wysoką wydajnością [[kod wynikowy|kodu wynikowego]], bezpośrednim dostępem do [[zasoby sprzętowe|zasobów sprzętowych]] i funkcji systemowych, łatwością tworzenia i korzystania z [[Biblioteka programistyczna|bibliotek]] (napisanych w C++, [[C (język programowania)|C]] lub innych językach), niezależnością od konkretnej platformy sprzętowej lub systemowej (co gwarantuje wysoką przenośność kodów źródłowych) oraz niewielkim środowiskiem uruchomieniowym. Podstawowym obszarem jego zastosowań są [[Oprogramowanie użytkowe|aplikacje]] i [[System operacyjny|systemy operacyjne]].
 
C++ został zaprojektowany przez [[Bjarne Stroustrup]]a jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i silną statyczną kontrolę typów. Zachowanie zgodności z językiem C na poziomie kodu źródłowego pozostaje jednym z podstawowych celów projektowych kolejnych standardów języka.
 
W latach 90. XX wieku język C++ zdobył pozycję jednego z najpopularniejszych języków programowania ogólnego przeznaczenia. Na początku XXI wieku liczbę programistów języka C++ szacowano na około 3 miliony<ref>{{Cytuj stronę | url = http://www.stroustrup.com/bs_faq.html | tytuł = Bjarne Stroustrup's FAQ | nazwisko = Stroustrup | imię = Bjarne | język = en | data dostępu = 2015-04-16}}</ref>.
 
Język C++ jest [[Standard|standaryzowany]] przez [[Międzynarodowa Organizacja Normalizacyjna|ISO]]. Ostatnia, najnowsza z wersji standardu, nazywana [[C++17|C++20]], opublikowana została w grudniu 2020 jako ISO/IEC 14882:2020<ref name="iso_c++17">{{Cytuj stronę|url=https://www.iso.org/standard/79358.html|tytuł=ISO/IEC 14882:2020|język=en|data dostępu=2020-12-18|opublikowany=International Organization for Standardization|autor=}}</ref>. Pierwszą wersję, [[C++98]], opublikowano w 1998 jako ISO/IEC 14882:1998<ref>{{Cytuj stronę | url = http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=25845 | tytuł = ISO/IEC 14882:1998 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>. Następnie kilkukrotnie standard aktualizowano: [[C++03]]<ref>{{Cytuj stronę | url = http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=38110 | tytuł = ISO/IEC 14882:2003 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>, [[C++11]]<ref>{{Cytuj stronę | url = http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=50372 | tytuł = ISO/IEC 14882:2011 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref><ref>{{Cytuj stronę | url = http://www2.research.att.com/~bs/C++0xFAQ.html | tytuł = C++11 FAQ | nazwisko = Stroustrup | imię = Bjarne | data = 2012-02-23 | język = en | data dostępu = 2015-12-08 | archiwum = http://web.archive.org/web/20120624062540/http://www2.research.att.com/~bs/C++0xFAQ.html | zarchiwizowano = 2012-06-24}}</ref><ref>{{Cytuj stronę | url = http://gcc.gnu.org/gcc-4.4/changes.html | tytuł = GCC 4.4 Release Series Changes, New Features, and Fixes | opublikowany = [[Free Software Foundation]] | język =en | data dostępu = 2015-04-16}}</ref> (opracowany już w 2009 jako C++0x, jednak opublikowany dopiero w 2011)<ref>{{Cytuj stronę | url = https://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/ | tytuł = We have an international standard: C++0x is unanimously approved | język = en | data dostępu = 2017-12-18 | imię = Herb | nazwisko = Sutter | opublikowany = Sutter's Mill}}</ref>, oraz [[C++14]]<ref>{{Cytuj stronę | url = http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=64029&ICS1=35&ICS2=60 | tytuł = ISO/IEC 14882:2014 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>, [[C++17]] oraz [[C++20]].
[[C++03]]<ref>{{Cytuj stronę | url = http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=38110 | tytuł = ISO/IEC 14882:2003 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>, [[C++11]]<ref>{{Cytuj stronę | url = http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=60&ics3=&csnumber=50372 | tytuł = ISO/IEC 14882:2011 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref><ref>{{Cytuj stronę | url = http://www2.research.att.com/~bs/C++0xFAQ.html | tytuł = C++11 FAQ | nazwisko = Stroustrup | imię = Bjarne | data = 2012-02-23 | język = en | data dostępu = 2015-12-08 | archiwum = http://web.archive.org/web/20120624062540/http://www2.research.att.com/~bs/C++0xFAQ.html | zarchiwizowano = 2012-06-24}}</ref><ref>{{Cytuj stronę | url = http://gcc.gnu.org/gcc-4.4/changes.html | tytuł = GCC 4.4 Release Series Changes, New Features, and Fixes | opublikowany = [[Free Software Foundation]] | język =en | data dostępu = 2015-04-16}}</ref> (opracowany już w 2009 jako C++0x, jednak opublikowany dopiero w 2011)<ref>{{Cytuj stronę | url = https://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/ | tytuł = We have an international standard: C++0x is unanimously approved | język = en | data dostępu = 2017-12-18 | imię = Herb | nazwisko = Sutter | opublikowany = Sutter's Mill}}</ref>, oraz [[C++14]]<ref>{{Cytuj stronę | url = http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=64029&ICS1=35&ICS2=60 | tytuł = ISO/IEC 14882:2014 | język = en | data dostępu = 2017-12-18 | opublikowany = International Organization for Standardization}}</ref>. Obecnie planowana jest już kolejna wersja standardu, na razie roboczo nazywana [[C++23|C++2b]]<ref>{{Cytuj stronę|url=https://herbsutter.com/2020/09/06/c20-approved-c23-meetings-and-schedule-update/|tytuł=Trip report: Summer ISO C++ standards meeting (Oulu)|język=en|data dostępu=2020-12-18|opublikowany=Sutter's Mill|autor=}}</ref>.
 
== Cechy standardów ==
Linia 80 ⟶ 76:
-->
Poniższy program wyprowadza na standardowe urządzenie wyjścia napis „[[Hello world]]”:
<syntaxhighlight lang="cpp" line="1">
// Włączenie pliku nagłówkowego.
#include <iostream>
 
// Włączenie przestrzeni nazw std do głównej.
using namespace std;
 
// Definicja funkcji o nazwie main.
int main()
{
std::cout << "Hello world\n" << endl;
// Wyświetlenie napisu "Hello world" na standardowe wyjście. endl oznacza przejście do nowej linii.
cout << "Hello world" << endl;
// Zakończenie funkcji ze zwróceniem wartości 0.
return 0;
}