Edytujesz „C++”
Z Nonsensopedii, polskiej encyklopedii humoru
Uwaga: Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli zalogujesz się lub utworzysz konto, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Ta edycja może zostać anulowana. Porównaj ukazane poniżej różnice między wersjami, a następnie zapisz zmiany.
Aktualna wersja | Twój tekst | ||
Linia 1: | Linia 1: | ||
{{programisto}} |
{{programisto}} |
||
⚫ | |||
{{cytat|< |
{{cytat|<source lang="cpp">long long ago; // in a galaxy far far away</source>|C++ o [[Gwiezdne wojny|Gwiezdnych wojnach]]}} |
||
⚫ | |||
{{cytat|<source lang="cpp">long long ago; |
|||
⚫ | '''C++''' (z [[język angielski|ang]]. Si Plask Plask) – ezoteryczny, wieloparadygmatowy, wielofunkcyjny, uniwersalny, obiektowy, generyczny, niskopoziomowy |
||
int a; //galaxy |
|||
for(int i=away;away<1;away++)</source>|Udoskonalona wersja powyższego kodu}} |
|||
⚫ | '''C++''' (z [[język angielski|ang]]. Si Plask Plask) – ezoteryczny, wieloparadygmatowy, wielofunkcyjny, uniwersalny, obiektowy, generyczny, niskopoziomowy, bezsensowny język programowania będący dla [[C (język programowania)|C]] tym, czym jest [[Nonsensopedia]] dla [[Wikipedia|Wikipedii]] (albo na odwrót). Przez [[noob]]ów programistycznych uważany za język z największymi możliwościami, lecz oni się nie znają, wszystko da się łatwo zakodzić w [[asembler]]ze. |
||
⚫ | |||
⚫ | |||
⚫ | |||
== Zastosowanie == |
|||
C++ jest uznawane za świetny język dla [[Alfonsi|alfonsów]], gdyż posiada (w najnowszym standardzie) zestaw seksownych funkcji. Oto część z nich: |
C++ jest uznawane za świetny język dla [[Alfonsi|alfonsów]], gdyż posiada (w najnowszym standardzie) zestaw seksownych funkcji. Oto część z nich: |
||
* <code>stoi</code> – funkcja wywołująca stanie; |
* <code>stoi</code> – funkcja wywołująca stanie; |
||
Linia 14: | Linia 12: | ||
* <code>wstring</code> – klasa do manipulacji szerokimi stringami (wide string); |
* <code>wstring</code> – klasa do manipulacji szerokimi stringami (wide string); |
||
* <code>to_string</code> – zaglądanie w stringi; |
* <code>to_string</code> – zaglądanie w stringi; |
||
* <code>to_wstring</code> – zaglądanie w szerokie stringi |
* <code>to_wstring</code> – zaglądanie w szerokie stringi. |
||
* <code>sprintf</code> – funkcja do ekspresowej kopulacji (najczęściej używana razem ze stoi). |
|||
⚫ | |||
⚫ | |||
⚫ | |||
== Nowości == |
== Nowości == |
||
W porównaniu z C, język posiada wiele nowych możliwości, które czynią składnię jeszcze bardziej zagmatwaną i trudniejszą do zrozumienia. |
W porównaniu z C, język posiada wiele nowych możliwości, które czynią składnię jeszcze bardziej zagmatwaną i trudniejszą do zrozumienia. |
||
=== Klasy === |
|||
W związku z wszechobecną modą na programowanie obiektowe, w C++ wprowadzono klasy, które są dokładnie tym samym, co znane z C struktury. Jedyną różnicą jest to, że pola i metody struktur są domyślnie publiczne, a pola i metody klas są domyślnie prywatne, ale i tak nikt nie wie, co to znaczy. |
|||
=== Przeładowanie operatorów === |
=== Przeładowanie operatorów === |
||
'''Przeładowanie operatorów''' – jak sama nazwa wskazuje, jest to rodzaj polimorfizmu pozwalający zdefiniować rożne zachowanie operatora w zależności od przyjętych operandów. |
|||
⚫ | |||
⚫ | |||
< |
<source lang="cpp"> |
||
int operator+(int a, int b) // plus oznacza odejmowanie |
int operator+(int a, int b) // plus oznacza odejmowanie |
||
{ |
{ |
||
Linia 50: | Linia 56: | ||
// jak łatwo się domyslić, program wypisuje "0" |
// jak łatwo się domyslić, program wypisuje "0" |
||
} |
} |
||
</source> |
|||
</syntaxhighlight> |
|||
=== Instrukcje preprocesora === |
=== Instrukcje preprocesora === |
||
Linia 56: | Linia 62: | ||
Przykład zastosowania: |
Przykład zastosowania: |
||
< |
<source lang="cpp"> |
||
#define true false |
#define true false |
||
#define public private |
#define public private |
||
Linia 65: | Linia 71: | ||
#define g h 1 p 1##*##1##/##1 m 1 h 1 m 1 m 1 h |
#define g h 1 p 1##*##1##/##1 m 1 h 1 m 1 m 1 h |
||
// jak łatwo się domyślić, litera 'g' służy do odejmowania |
// jak łatwo się domyślić, litera 'g' służy do odejmowania |
||
</source> |
|||
</syntaxhighlight> |
|||
=== Szablony === |
=== Szablony === |
||
Linia 72: | Linia 78: | ||
Funkcja „min” w stylu C (makro preprocesora): |
Funkcja „min” w stylu C (makro preprocesora): |
||
< |
<source lang="cpp"> |
||
#define min(a,b) ((a) > (b) ? (b) : (a)) |
#define min(a,b) ((a) > (b) ? (b) : (a)) |
||
</source> |
|||
</syntaxhighlight> |
|||
Funkcja „min” w stylu C++ (szablon funkcji): |
Funkcja „min” w stylu C++ (szablon funkcji): |
||
< |
<source lang="cpp"> |
||
template <typename typ> |
template <typename typ> |
||
typ min(typ a, typ b) |
typ min(typ a, typ b) |
||
Linia 84: | Linia 90: | ||
return ((a) > (b) ? (b) : (a)); |
return ((a) > (b) ? (b) : (a)); |
||
} |
} |
||
</source> |
|||
</syntaxhighlight> |
|||
Niestety, nie udało się wyeliminować preprocesora z C++, bo wciąż jest on potrzebny do łączenia plików źródłowych (<code>#include</code>). |
|||
=== Znane stwierdzenia === |
=== Znane stwierdzenia === |
||
# Wszystkie znaki prowadzą do main(). |
# Wszystkie znaki prowadzą do main(). |
||
# Od zarania dziejów człowiek utrudnia sobie życie. Można porównać słowa C i C++. |
# Od zarania dziejów człowiek utrudnia sobie życie. Można porównać słowa C i C++. |
||
# Każdy człowiek wie, że |
# Każdy człowiek wie, że Windows 7 na Delphi pisany jest. |
||
# C++ to język obiektowy (i nie tylko), który ma za zadanie dodać nowe wyrażenia do istniejących funkcji. |
# C++ to język obiektowy (i nie tylko), który ma za zadanie dodać nowe wyrażenia do istniejących funkcji. |
||
# Biblioteka. Skąd to się bierze? |
# Biblioteka. Skąd to się bierze? |
||
Linia 96: | Linia 104: | ||
== Zobacz też == |
== Zobacz też == |
||
* [[programowanie obiektowe]] |
|||
* [[C (język programowania)]] |
* [[C (język programowania)]] |
||
* [[C Sharp|C#]] |
* [[C Sharp|C#]] |
||
Linia 102: | Linia 109: | ||
* [[CMake]] |
* [[CMake]] |
||
{{stopka}} |
|||
[[Kategoria:Języki programowania]] |
[[Kategoria:Języki programowania]] |
||