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 85: | Linia 85: | ||
} |
} |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
=== Czystość funkcji === |
|||
Funkcje w C++ mogą być brudne (i nie za bardzo da się je umyć). Na przykład ta sama funkcja wywołana z tymi samymi argumentami dwa razy może dawać różne wyniki. Dotyczy to w sumie każdego języka niebędącego tworem czysto funkcyjnym, ale w C++ jest szczególnie uciążliwe, gdyż cały brud można schować do środka takiej funkcji i nikt się niczego nie dowie (zwłaszcza jeśli taka cudowna funkcja będzie częścią jakiejś DLL-ki). Na przykład można zrobić to tak: |
|||
<source lang="cpp">#include <iostream> |
|||
int foo() |
|||
{ |
|||
static int c=0; |
|||
return c++; |
|||
} |
|||
int main() |
|||
{ |
|||
int first=foo(); |
|||
int second=foo(); |
|||
std::cout<<first<<"!="<<second<<'\n'; |
|||
}</source> |
|||
=== Znane stwierdzenia === |
=== Znane stwierdzenia === |