C++

Aktualizacja: 22.10.2022

Zobacz polecane:

Kursy Książki

Zastosowanie

C++ to obiektowy język ogólnego zastosowania. Programy w C++ mogą być napisane tak, aby były wieloplatformowe bez żadnych modyfikacji, ale tylko, gdy trzymamy się odpowiednich zasad. Trzeba pamiętać, że niektóre funkcje/biblioteki są dostępne tylko dla specyficznych systemów.

Język C++ jest rozszerzeniem języka C. Główną, odróżniającą je cechą jest niewątpliwie obiektowość, której brak w języku C. Oczywiście C++ wprowadził na przestrzeni lat wiele różnych usprawnień, jak chociażby możliwość bezpośredniego tworzenia i obsługi wątków, interfejsu graficznego, wykorzystanie szablonów, w nowszych wersjach wyrażenia lambda, pętle for-range, typ auto i wiele innych. Ciekawym jest fakt, że w większości przypadków kod stworzony w C można dowolnie wykorzystać w języku C++, co rozszerza możliwości programisty o wykorzystanie niskopoziomowych bibliotek stworzonych w C. Uwaga – nie działa to w drugą stronę: kod C jest kompatybilny z C++, ale nie w drugą stronę.

C++ jest najczęściej stosowany w systemach wbudowanych oraz w tworzeniu gier. W języku C++ napisane zostały systemy operacyjne (lub ich części) takie jak Apple OS X,IBM OS/400, Windows NT, XP, Vista, 7. Warto jednak pamiętać, że zastosowanie C++ jest dużo szersze. Ogólnie rzecz biorąc C++ znajduje zastosowanie wszędzie tam, gdzie najważniejsza jest wydajność stworzonego kodu i niskie zużycie pamięci — od aplikacji desktopowych (m.in. produkty Adobe np. Photoshop, Acrobat czy pakiety biurowe Office) przez serwery (m.in. e-commerce np. Amazon, Ebay; wyszukiwarki np. Chrome; baz danych np. MongoDB) po silniki gier AAA lub ich części (np. CryEngine, Unity, Unreal Engine).

C++ używany jest również w największych światowych korporacjach m.in.: Adobe, Facebook, Amazon, Ericsson, HP, IBM, Intel. Warto też tu wspomnieć o wielu pochodnych frameworkach, które bazują na języku C++, często rozszerzając jego możliwości – idealnym przykładem jest tu framework Qt.

Top 10 projektów na Github wykorzystujących C++

Github to system kontroli wersji. Możesz znaleźć tam projekty open source w każdej technologii. Zobacz jakiego typu projekty wykorzystują język C++ oraz jak wygląda C++ od strony kodu. Zwróć uwagę na pliki z rozszerzeniem .cc lub .cpp.

1# tensorflow 170,943
2# electron 105,783
3# terminal 87,450
4# bitcoin 68,091
5# opencv 66,285
6# pytorch 62,435
7# swift 61,752
8# protobuf 57,999
9# godot 57,520
10# tesseract 48,958

Poziom skomplikowania

C++ to język dużo bardziej złożony niż inne języki programowania. Jego semantyka może się wydawać nieco mniej przyjazna dla początkujących. Trzeba też zrozumieć dużo więcej aspektów niż w językach o wyższym poziomie abstrakcji. Należy do nich m.in. zarządzanie pamięcią. Jest on jednak dużo bardziej przyjazny niż jego język-ojciec C.

C++ zakłada statyczną kontrolę typów, ale pozwala także na ich automatyczną dedukcję. Dzięki temu wszelkie błędy w typowaniu zostaną wykryte już w fazie kompilacji – podobnie jak ma to miejsce w języku C.

Dzięki tym właściwościom C++ daję większą kontrolę nad programem, jest bardziej jednoznaczny i umożliwia dostęp do bardziej niskopoziomowych funkcji, co jest szczególnie ważne w przypadku gdy chcemy w 100% wykorzystać potencjał systemu i jego funkcje.

Często mówi się o wskaźnikach, że są trudne dla początkujących, jednak nie powinieneś się ich bać. To nie jest rocket science. W C++ też istnieją inteligentne wskaźniki (są zalecaną praktyką), które same usuwają się wraz z końcem swojego zasięgu, zapobiegając wyciekom pamięci. Surowe wskaźniki są używane tylko w specyficznych sytuacjach.

Można zauważyć, że C++ jest często polecanym językiem na początek, z racji, że jak poznasz wszystkie koncepty programowania w C++, to wtedy żaden inny język nie sprawi Ci problemu. Jest to prawda, jednak jest to język dosyć złożony i dla nowicjuszy może być przytłaczający. Zaczynając z C++ można się sparzyć, dlatego, jeśli chcesz w krótkim czasie dowiedzieć się na czym polega samo programowanie, warto zacząć z językami bardziej przyjaznymi dla początkujących jak np. Python — C++ to nieco trudniejsza i dłuższa droga na początek.

Statystyki

Dane aktualne na dzień: 31.01.2023

Według TIOBE index, język C++ jest na 3 pozycji pod względem popularności. W ubiegłym roku był na pozycji 4.

Na Stack Overflow jest 6 najczęściej tagowanym językiem z 788,053 zapytaniami.

Na Github zajmuje 4 pozycję z liczbą 624,074 projektów, z których 2,003 ma więcej niż 1000 gwiazdek.

Jeśli chodzi o organizowane spotkania to według Meetup.com jest to 12 co do wielkości społeczność z liczbą 231 grup, w skład których wchodzi 129,900 członków na całym świecie. W Polsce mamy odpowiednio 17 grup, w skład których wchodzi 7,014 członków.

Meetupy C++ są kategoryzowane razem z językiem C. Mimo to widać, że w porównaniu do innych języków, grup organizujących spotkania dla społeczności C/C++ jest bardzo mało.

Przyszłość języka

Choć lata świetności C++ z 2003 roku przeminęły, można mimo to powiedzieć, że C++ z powrotem odzyskuje swoją popularność. Wraz z rozwojem technologii VR (Virtual Reality), w której C++ jest przodującym językiem, jest on coraz chętniej wykorzystywany. C++ jest co jakiś czas nadal ulepszany, mimo że powstał w 1985 roku. Choć C++ nie przoduje w rankingach popularności, to wszędzie tam, gdzie liczy się wydajność, jest często wybierany i nie zapowiada się, żeby się to zmieniło w najbliższym czasie. Warto tu również dodać, że na języku C++ bazuje wiele innych, wyższych języków programowania. Ostatnia jego wersja C17 wyszła w czerwcu 2018.

Najlepsze kursy video do nauki C++

na platformie Udemy:

Flaga angielska Kursy w języku angielskim Flaga angielska

(W języku polskim niżej)


Język kursu - angielski Okładka kursu

Beginning C++ Programming - From Beginner to Beyond

Obtain Modern C++ Object-Oriented Programming (OOP) and STL skills. C++14 and C++17 covered. C++20 info see below.

Czas trwania: 46 total hours 239579 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2023-02-01
4.57 / 5
Liczba ocen: 56421

Język kursu - angielski Okładka kursu

The C++20 Masterclass : From Fundamentals to Advanced

Learn and Master Modern C++ From Beginning to Advanced in Plain English : C++11, C++14, C++17, C++20 and More!

Czas trwania: 113 total hours 15441 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2023-01-10
4.58 / 5
Liczba ocen: 2107

Język kursu - angielski Okładka kursu

Learn C++ Programming -Beginner to Advance- Deep Dive in C++

Classroom and Hands-on sessions- Features of C++ 11 , Exception Handling and STL - for Both Academics and Industry

Czas trwania: 30.5 total hours 65479 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2022-10-09
4.6 / 5
Liczba ocen: 20159

Język kursu - angielski Okładka kursu

Unreal Engine 5 C++ Developer: Learn C++ & Make Video Games

Created in collaboration with Epic Games. Learn C++ from basics while making your first 5 video games in Unreal

Czas trwania: 29.5 total hours 330554 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2023-01-26
4.71 / 5
Liczba ocen: 63107

Flaga polska Kursy w języku polskim Flaga polska

Język kursu - polski Okładka kursu

C++ od Podstaw do Eksperta

Oszczędź swój czas i naucz się szybko składni języka C++ z kursem, który został stworzony specjalnie dla początkujących.

Czas trwania: 21.5 total hours 12103 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2023-02-01
4.26 / 5
Liczba ocen: 1890

Język kursu - polski Okładka kursu

Programowanie w języku C++ - od A do Z

Naucz się jednego z najpopularniejszych języków programowania i zacznij pisać praktyczne programy w języku C++

Czas trwania: 9 total hours 557 zapisanych uczestników
Beginner Level Ostatnia aktualizacja: 2022-07-27
4.7 / 5
Liczba ocen: 106

Język kursu - polski Okładka kursu

Programowanie obiektowe w języku C++ - OOP - od A do Z

Podnieś poziom swoich umiejętności o programowanie obiektowe w języku C++

Czas trwania: 11.5 total hours 234 zapisanych uczestników
Intermediate Level Ostatnia aktualizacja: 2022-07-27
4.05 / 5
Liczba ocen: 41

Język kursu - polski Okładka kursu

150+ Ćwiczeń - Programowanie obiektowe w języku C++ - OOP

Podnieś poziom swoich umiejętności o programowanie obiektowe w języku C++ i rozwiąż ponad 150 ćwiczeń na różnym poziomie

Czas trwania: 1 total hour 385 zapisanych uczestników
Intermediate Level Ostatnia aktualizacja: 2022-09-26
4.7 / 5
Liczba ocen: 32

Inne kursy video na UdemyZobacz inne kursy video na Udemy

Najlepsze książki do nauki C++

od wydawnictwa Helion:

Następca popularnej Symfonii C++:

Inne: :

Najlepsza książka o wzorcach projektowych z przykładami w C++:

Zobacz inne książki w kategorii C++