Obecnie jestem studentem informatyki i zastanawiam się, co jest dziś ważne w C ++, do czego służy? Ukończyłem podstawowy kurs języka C ++ na moim uniwersytecie, ale nie mogę sobie wyobrazić, gdzie mogę wykorzystać moją wiedzę i w jakim kierunku powinienem uczyć się języka C ++.
Innymi słowy, czego powinienem nauczyć się, jak zostać programistą C ++?
Obecnie uczę się języka Java tylko dlatego, że nie widzę jasno, w którym obszarze C ++ może być dziś przydatny, ale wyraźnie wiem, jaką pracę będę wykonywać jako programista Java. Ale nadal mam nadzieję, że C ++ nie jest martwy.
Odpowiedzi:
Zabójczą funkcją C ++ jest zarządzanie zasobami ograniczone do zakresu , SBRM (bardziej znane jako „ RAII ”). Jest to jedyny przemysłowy język programowania oparty na tej koncepcji. W C ++ czasy życia wszystkich obiektów są dokładnie znane, a (dobrze napisane) programy C ++ gwarantują, że zasoby są pozyskiwane i zwalniane w całkowicie deterministyczny sposób. Dla porównania, języki wyrzucane przez śmieci lub w inny sposób zarządzane nie dają żadnych takich gwarancji; w rzeczywistości obiekty w tych językach mogą pozostać po zakończeniu ich życia.
To jest powód, dla którego C ++ jest stosowany w finansach, grach wideo, wysoko wydajnych systemach wbudowanych i systemach czasu rzeczywistego, transporcie, produkcji i innych branżach, w których ważny jest determinizm i precyzja. Nie ma alternatywy.
To prawda, że był używany do znacznie większej liczby zadań niż te, a zadania te są tracone do C #, Pythona i innych bardziej odpowiednich języków, ale to nie wpływa na jego niszę podstawową.
źródło
new
w C ++, nazywana umieszczaniem. Pozwala ponownie wykorzystać aktualnie zajęte miejsce w pamięci. Więc jeśli ktoś chciał uniknąć (lub zminimalizować) fragmentację, może to teoretycznie zrobić. A przewidywalność nie jest tym samym deterministycznym.Istnieje kilka rynków dla C i C ++ (według mojego, choć ograniczonego zrozumienia)
.EXE
plik bez żadnego instalatora lub czegoś podobnego; do tego nie ma alternatyw)źródło
C ++ jest nadal bardzo przydatny i bynajmniej nie martwy. Jeśli chcesz przeczytać poważne porównanie niektórych różnych języków programowania, sprawdź artykuł . Empiryczne porównanie C, C ++, Java, Perl, Python, Rexx i Tcl . Nie jest to najnowsza aktualizacja, ale wierzę, że większość rzeczy nadal się utrzymuje.
źródło