C++: Różnice pomiędzy wersjami
Z Nonsensopedii, polskiej encyklopedii humoru
M (Przywrócono przedostatnią wersję, jej autor to Grzeeesiek. Ofiarą rewertu jest 83.12.54.114.) |
(Ale ze mnie lama, wandalizuję Nonsensopedię... Byłbym bardzo wdzięczny za otrzymanie bana) |
||
Linia 1: | Linia 1: | ||
[[Media:Przyklad.ogg]] |
|||
{{programowanie}} |
|||
#PATRZ[["Rudy dudy sie zeni"]]. |
|||
'''C++''' – 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). |
|||
== 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. |
|||
=== Klasy === |
|||
W związku z wszechobecną modą na programownaie 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''' – jak sama nazwa wskazuje, jest to rodzaj polimorfizmu pozwalający zdefiniować rożne zachowanie operatora w zależności od przyjętych operandów. |
|||
Mówiąc po ludzku: przeładowanie operatorów jest wtedy, gdzy „+” (plus) oznacza odejmowanie, „-” (minus) – dzielenie, a „/” (slesz) – wyświetlenie napisu „Hello, world!”. Dzięki temu nikt nie będzie w stanie zorientować się, co dany fragment kodu robi. |
|||
<span style="color:#440088;"><b>int</b></span> operator+(<span style="color:#440088;"><b>int</b></span> a, <span style="color:#440088;"><b>int</b></span> b) <span style="color:#666666;">// plus oznacza odejmowanie</span> |
|||
{ |
|||
<span style="color:#880044;"><b>return</b></span> a-b; |
|||
} |
|||
<span style="color:#440088;"><b>int</b></span> operator-(<span style="color:#440088;"><b>int</b></span> a, <span style="color:#440088;"><b>int</b></span> b) <span style="color:#666666;">// minus oznacza dzielenie</span> |
|||
{ |
|||
<span style="color:#880044;"><b>return</b></span> a/b; |
|||
} |
|||
<span style="color:#440088;"><b>int</b></span> operator/(<span style="color:#440088;"><b>int</b></span> a, <span style="color:#440088;"><b>int</b></span> b) <span style="color:#666666;">// slesz powoduje wypisanie "Hello world!"</span> |
|||
<span style="color:#666666;">// i zawsze daje wynik 7</span> |
|||
{ |
|||
<span style="color:#aa0011;">std::cout</span> << "<b><i>Hello, world!</i></b>" << <span style="color:#aa0011;">std::endl</span>; |
|||
<span style="color:#880044;"><b>return</b></span> 7; |
|||
} |
|||
<span style="color:#440088;"><b>int</b></span> main() |
|||
{ |
|||
<span style="color:#440088;"><b>int</b></span> a,b,c; |
|||
<span style="color:#666666;">// przypisujemy liczbom "a" i "b" wartosc "2"</span> |
|||
a=2; |
|||
b=2; |
|||
<span style="color:#666666;">// przypisujemy liczbie "c" wartosc "a+b"</span> |
|||
c=a+b; |
|||
<span style="color:#666666;">// wypisujemy wartosc "c" na ekran</span> |
|||
<span style="color:#aa0011;">std::cout</span> << c << <span style="color:#aa0011;">std::endl</span>; |
|||
<span style="color:#666666;">// jak latwo sie domyslic, program wypisuje "0"</span> |
|||
} |
|||
=== Szablony === |
|||
Twórca C++, pragnąc wyzwolić programistów od złego Doktora Preprocesora, stworzył coś, co nazwał systemem szablonów. Szablony umożliwiają napisanie tego, co dawniej zajmowało jedną linię, w pięciu liniach. |
|||
Funkcja „min” w stylu C (makro preprocesora): |
|||
#define min(a,b) ((a) > (b) ? (b) : (a)) |
|||
Funkcja „min” w stylu C++ (szablon funkcji): |
|||
template <typename typ> |
|||
typ min(typ a, typ b) |
|||
{ |
|||
return ((a) > (b) ? (b) : (a)); |
|||
} |
|||
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 === |
|||
# Wszystkie znaki prowadzą do main(). |
|||
# Od zarania dziejów człowiek utrudnia sobie życie. Można porównać słowa C i C++. |
|||
# 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. |
|||
# Biblioteka. Skąd to się bierze? |
|||
{{stubinf}} |
|||
[[Kategoria:Języki programowania]] |