C++: Różnice pomiędzy wersjami
M (drobne) |
(Całe === ZNANE STWIERDZENIA ===) |
||
Linia 55: | Linia 55: | ||
Niestety, nie udało się wyeliminować preprocesora z C++, bo wciąż jest on potrzebny do łączenia plików źródłowych (<code>#include</code>). |
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 === |
|||
1. C++ jest jak zwykła kromka chleba z pomidorem. |
|||
2. Wszystkie znaki prowadzą do main(). |
|||
3. Od zarania dziejów człowiek utrudnia sobie życie. Można porównać słowa C i C++. |
|||
4. Każdy człowiek wie, że Windows 7 na Delphi pisany jest. |
|||
5. C++ to język obiektowy który ma za zadanie dodać nowe wyrażenia do istniejących funkcji. |
|||
6. Biblioteka. Skąd to się bierze??? |
|||
{{stubinf}} |
{{stubinf}} |
||
[[Kategoria:Języki programowania]] |
[[Kategoria:Języki programowania]] |
Wersja z 23:44, 17 mar 2010
Ten artykuł jest częścią cyklu naukowego języki komputerowe. |
Języki programowania: |
Inne języki komputerowe: |
|
edytuj ten szablon |
C++ – wieloparadygmatowy, wielofunkcyjny, uniwersalny, obiektowy, generyczny, niskopoziomowy, bezsensowny język programowania będący dla C tym, czym jest Nonsensopedia dla 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.
Przeciążanie operatorów
Przeciążanie 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: przeciążanie 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.
int operator+(int a, int b) // plus oznacza odejmowanie { return a-b; } int operator-(int a, int b) // minus oznacza dzielenie { return a/b; } int operator/(int a, int b) // slesz powoduje wypisanie "Hello world!" // i zawsze daje wynik 7 { std::cout << "Hello, world!" << std::endl; return 7; } int main() { int a,b,c; // przypisujemy liczbom "a" i "b" wartosc "2" a=2; b=2; // przypisujemy liczbie "c" wartosc "a+b" c=a+b; // wypisujemy wartosc "c" na ekran std::cout << c << std::endl; // jak latwo sie domyslic, program wypisuje "0" }
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 (#include
).
ZNANE STWIERDZENIA
1. C++ jest jak zwykła kromka chleba z pomidorem. 2. Wszystkie znaki prowadzą do main(). 3. Od zarania dziejów człowiek utrudnia sobie życie. Można porównać słowa C i C++. 4. Każdy człowiek wie, że Windows 7 na Delphi pisany jest. 5. C++ to język obiektowy który ma za zadanie dodać nowe wyrażenia do istniejących funkcji. 6. Biblioteka. Skąd to się bierze??? Szablon:Stubinf