poniedziałek, 21 października 2013

Różnice między C++ a C

1) Zamiast funkcji scanf stosujemy instrukcję cin, która nie wymaga od nas typu wprowadzanego argumentu.
2) Deklaracja funkcji: jeżeli chcemy aby funkcja była wywoływana bez żadnych argumentów to zamiast stosowania wyrażenia "void" w nawiasach, w C++ piszemy zwyczajnie same nawiasy.
3) Przesyłanie argumentów do funkcji jako referencja co pozwala funkcji na modyfikowanie zmiennych znajdujących się poza tą funkcją. W C nie jest to możliwe.
4) W C++ konieczne jest deklarowanie funkcji (nie definiowanie) przed jej użyciem w programie.
5) Standardowe funkcje biblioteczne znane z języka C znajdują się również w C++.
6) C++ nie podaruje nam jeżeli nie dodamy plika nagłówkowego z deklaracją danej funkcji. W C mogłoby to przejść.
7) Wskaźniki typu void: w C jest tak, że niezależnie po której stronie operatora przypisania stoi wskaźnik typu void to i tak nie trzeba używać rzutowanie. W C++ wymagane jest użycie operatora reinterpret_cast, np. "wskaźnik_do_typu_double = reinterpret_cast<double *>(wskaźnik_do_typu_void)".
8) Zamiast funkcji malloc stosujemy operator new.
9) Odpowiednikami funkcji malloc i free znanych z C są operatory new i delete. Przy tworzeniu obiektu operatorem new automatycznie wywoła się konstruktor natomiast używając operatora delete automatycznie wywoła się destruktor.
10) W klasycznym języku C mając przykładową funkcję o deklaracji "void function(struct some *pointer)" nie można było przekazać jej jako argument struktury, która była zdefiniowana bardzo podobnie. W C++ jeżeli jako argument przekażemy strukturę, która jest pochodną struktury podanej w deklaracji jako argument, to taka funkcja może na niej pracować.
11) Tryby otwarcia plików w języku C++ i odpowiadające im tryby w języku C:
- "out" odpowiada "w",
- "out | app" odpowiada "a",
- "out | trunc" odpowiada "w",
- "in" odpowiada "r",
- "in | out" odpowiada "r+",
- "in | out | trunc" odpowiada "w+",
- "out | binary" odpowiada "wb",
- "out | app | binary" odpowiada "ab",
- "out | trunc | binary" odpowiada "wb",
- "in | binary" odpowiada "rb",
- "in | out | binary" odpowiada "r+b"
- "in | out | trunc | binary" odpowiada "w+b".

Przeczytaj część drugą.

Źródło: Eckel B., Thinking in C++. Edycja polska, Helion SA, 2002