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

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Anulowanie wersji 50311808 autora 157.25.147.102 (dyskusja)
najnowszy standard jest z 2017
Linia 20:
'''C++''' – [[język programowania]] ogólnego przeznaczenia.
 
Umożliwia [[abstrakcjaAbstrakcja (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ą kodu wynikowego, bezpośrednim dostępem do 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]].
 
Linia 34:
Większość użytecznych programów w C++ wymaga stosowania bibliotek niestandardowych. Są one łatwo dostępne w Sieci zarówno jako produkty własnościowe, jak i jako [[Wolne i otwarte oprogramowanie|FLOSS]]. Programy napisane w C++ mogą korzystać również z zasobów bibliotek języka C.
 
Język C++ posiada swój oficjalny standard (aktualnie jest to [[C++14|C++]]17 z 20142017).
 
Język C++ nie jest własnością żadnej osoby, instytucji czy korporacji.
 
== Właściwości języka ==
* Język C++ jest językiem wieloparadygmatowym<ref>[[Bjarne Stroustrup]], [http://web.archive.org/web/20000816022258/http://www.research.att.com/~bs%7Ebs/oopsla.pdf "Why C++ is not just an Object-Oriented Programming Language"] {{lang|en}}</ref>. Oznacza to, że można w nim stosować jednocześnie różne style programowania, w tym programowanie proceduralne, obiektowe, generyczne, jak również programować na poziomie [[asembler]]a.
* Język C++ zakłada statyczną kontrolę typów; posiada też elementy dynamicznej kontroli typów.
* Język C++ umożliwia bezpośrednie zarządzanie wolną pamięcią.
Linia 129:
** Dynamiczna kontrola typów ([[RTTI]]), czyli dynamiczne (sprawdzane w czasie wykonywania) rzutowanie pomiędzy typami spokrewnionych klas, oraz określanie typu w czasie wykonywania (operatory '''dynamic_cast''' i '''typeid''')
** Słowo kluczowe '''this''' (wskaźnik na obiekt, w kontekście którego wywoływana jest metoda)
** [[zmiennaZmienna wskaźnikowa|Wskaźniki]] do składowych (pól i metod)
** [[Metoda statyczna|Metody]] i [[Zmienna statyczna|pola]] statyczne
* Udogodnienia związane z programowaniem generycznym:
** [[Szablon (C++)|Szablony]] (wzorce) klas i funkcji
** Włączenie do biblioteki standardowej generycznej biblioteki [[Standard Template Library|STL]]
* Obsługa [[wyjątekWyjątek|wyjątków]]:
** Deklaracja wychwytywania wyjątków: '''try''' ... '''catch'''
** Deklaracja wywoływania wyjątku: '''throw'''
** Deklaracja ograniczania wyjątków: '''throw(...)''' (określanie, jakie wyjątki mogą być propagowane z danej funkcji/metody)
* Zmiany natury ogólnej:
** [[przestrzeńPrzestrzeń nazw|Przestrzenie nazw]] i operator zasięgu '''::'''
** Traktowanie definicji [[zmiennaZmienna (informatyka)|zmiennych]] i obiektów jak zwykłych instrukcji
** Dynamiczna inicjalizacja zmiennych [[zmienna globalna|globalnych]] i [[Zmienna (informatyka)|lokalnych]] zmiennych [[zmienna statyczna|statycznych]] (tzn. mogą być inicjalizowane wartością funkcji)
** Możliwość uzyskania dostępu do przesłoniętej zmiennej globalnej za pomocą operatora '''::'''
Linia 156:
* [[C++/CLI]]
* [[C++11]]
* [[operatorOperator (programowanie)|Operatory w języku C++]]
* [[Standard Template Library|STL]]
* [[CPP (preprocesor)|Preprocesor języka C++]]
Linia 171:
Poniższe linki zostały wyczyszczone z kursów, tutoriali oraz nieoficjalnych i związanych luźno z tematem linków zewnętrznych. Jeśli uważasz, że Twoja strona nadaje się do wpisania na listę linków zgłoś to w dyskusji – samowolne dodawanie będzie cofane. Dalsze informacje znajdują się na stronie [[Wikipedia:Zasady wstawiania linków zewnętrznych]]
-->
* [http://www.open-std.org/jtc1/sc22/wg21/ Komitet standaryzacyjny [[Międzynarodowa Organizacja Normalizacyjna|ISO]] C++][[Międzynarodowa Organizacja Normalizacyjna|ISO]] {{lang|en}}
* [http://www.stroustrup.com/bs_faq.html FAQ prowadzone przez Bjarne Stroustrupa] {{lang|en}} <!-- Ten link jest raczej niepotrzebny ponieważ występuje w przypisach -->
* [http://www.cplusplus.com The C++ Resources Network] {{lang|en}}