C++ jest wstecznie kompatybilny z C. Po dołączeniu bibliotek standardowych z języka C (rozpoczynają cię one z małej ltiery 'c' <cmath> <cstdlib> itp.). Prawdę mówiąc C++ jest po prostu rozwiniętą wersją C. Nic nie zostało usunięte z C++ co było w C, aby zachować kompatybilność.
(Nie można tego powiedzieć o C#, w którym nie ma, np. wskaźników. Zastąpiły je referencje)
Dzięki temu programy napisane w C mogą być kompilowane przez kompilatory C++ (po drobnych poprawkach). C++ został wzbogacony o obiektowość, której nie posiada język C.
Dlatego jeśli kod źródłowy ma przypis: C/C++ oznacza to, że najprawdopodobniej został napisany w C, ale kompilator C++ też sobie da z nim radę.
Nie może istnieć C++/C# ponieważ w C# wszystko musi być w klasie. W C# nie może istnieć funkcja poza klasą - w zakresie globalnym (taka jak int main w C++). Ponieważ w C# wszystko jest obiektem, to nie jest zachowana kompatybilność z C++.
O C/C# już nawet nie wspominam, bo C nie posiada obiektowości, a C# jest tylko obiektowy.
Rodzina literki "C" oznacza, że języki z tej rodziny mają bardzo podobną składnię. To wszystko ;-)
PS. Przy kompilowaniu kodu napisanego w C przez kompilator C++ należy pamiętać o zamianie bibliotek z języka C, do ich wersji przygotowanych specjalnie pod C++,
C |
C++ |
<stdio.h> |
<cstdio> |
<stdlib.h> |
<cstdlib> |
<math.h> |
<cmath> |
Używanie bibliotek z dopiskiem ".h" w C++ jest nieeleganckie, bo w standardzie zapisano, że standardowe biblioteki C++ nie powinny ich zawierać. Jeśli coś ma ".h", to znaczy, że jest z C lub nie należy do standardowych bibliotek C++ (np. <conio.h> lub <Windows.h>)
Pozdrawiam :-)