C++ to wszechstronny język obiektowy, który umożliwia tworzenie wieloplatformowych aplikacji, pod warunkiem przestrzegania odpowiednich zasad. Jako rozszerzenie języka C, C++ wprowadza programowanie obiektowe oraz szereg usprawnień, takich jak obsługa wątków, wyrażenia lambda, szablony, typ auto czy pętle for-range. Co więcej, kod napisany w C zazwyczaj można bezproblemowo używać w C++, co zwiększa jego uniwersalność.
C++ znajduje szerokie zastosowanie w różnych dziedzinach, szczególnie tam, gdzie kluczowa jest wydajność i niskie zużycie zasobów. Przykłady zastosowań obejmują:
C++ jest szeroko stosowany w największych światowych firmach, takich jak Adobe, Facebook, Amazon, IBM czy Intel.
Warto wspomnieć też o frameworku Qt, który rozszerza język C++ i ułatwia z nim pracę.
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 | 188,889 |
2# | react-native | 121,297 |
3# | electron | 116,139 |
4# | terminal | 97,559 |
5# | godot | 95,656 |
6# | bitcoin | 82,677 |
7# | opencv | 81,396 |
8# | llama.cpp | 77,339 |
9# | gpt4all | 72,933 |
10# | swift | 68,281 |
C++ uchodzi za język trudniejszy (na początek) od wielu nowoczesnych języków programowania. Jego semantyka, wskaźniki, zarządzania pamięcią może się wydawać mniej przyjazna dla początkujących, jednak w porównaniu do języka C, C++ jest dużo bardziej przyjazny np. dzięki funkcjom takim jak inteligentne wskaźniki czy dedukcja typów.
C++ jest szczególnie ceniony za:
Pomimo wysokiego poziomu trudności, znajomość C++ daje solidne podstawy w programowaniu i otwiera drogę do zrozumienia innych języków. Mimo to, dla osób rozpoczynających naukę programowania, bardziej odpowiednim wyborem może być język o wyższym poziomie abstrakcji, jak np. Python.
Przykładowa implementacja wyszukiwania binarnego:
// C++
#include <iostream>
using namespace std;
int binarySearch(string array[], string x) {
int start = 0;
int end = sizeof(array) - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (array[middle] == x) {
return middle;
}
if (array[middle] > x) {
end = middle - 1;
} else {
start = middle + 1;
}
}
return -1;
}
int main() {
string library[] = {"Algorytmy", "Czysty kod", "Harry Potter", "Illuminati", "Wzorce projektowe", "..."};
/* Dla wyszukiwania binarnego
tablica musi być posortowana rosnąco */
string x = "Illuminati";
int foundXat = binarySearch(library, x);
cout << "Znaleziono \"" + x + "\" na pozycji " + to_string(foundXat)<< endl;
// Znaleziono "Illuminati" na pozycji 3
}
Według TIOBE index, język C++ jest na 2 pozycji pod względem popularności. W ubiegłym roku był na pozycji 3.
Na Stack Overflow jest 6 najczęściej tagowanym językiem z 816,570 zapytaniami.
Na Github zajmuje 4 pozycję z liczbą 980,623 projektów, z których 2,863 ma więcej niż 1000 gwiazdek.
Jeśli chodzi o organizowane spotkania to według Meetup.com jest to 9 co do wielkości społeczność z liczbą 194 grup, w skład których wchodzi 128,557 członków na całym świecie. W Polsce mamy odpowiednio 9 grup, w skład których wchodzi 5,691 członków.
Meetupy C++ są kategoryzowane razem z językiem C. Mimo to widać, że grup organizujących spotkania dla społeczności C/C++ jest stosunkowo niewiele.
C++ pozostaje jednym z najważniejszych języków programowania, mimo że lata jego największej popularności już minęły. Dzięki ciągłym ulepszeniom np. wprowadzeniu nowych standardów, jak C++11, C++17 czy C++20, język ten jest nadal aktywnie rozwijany. Jego ostatnia wersja C++23 (ISO/IEC 14882:2024) została wydana 19 października 2024.
Rozwój technologii VR (Virtual Reality) i AR (Augmented Reality), w których wydajność jest kluczowa, przyczynia się do rosnącego znaczenia C++. Wysoka wydajność oraz kontrola nad zasobami sprawiają, że język ten pozostaje niezastąpiony w wielu zastosowaniach.
(W języku polskim niżej)
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 334706 zapisanych uczestnikówThe 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: 115 total hours 33861 zapisanych uczestnikówLearn 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 96191 zapisanych uczestnikówQuick Start to Modern C++ for Programmers [2024 Edition]
From C++11 to C++23: Mastering C++ for the Experienced Programmer. Always kept up-to-date.
Czas trwania: 8.5 total hours 2284 zapisanych uczestnikówC++ 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: 22.5 total hours 14504 zapisanych uczestnikówProgramowanie 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 1006 zapisanych uczestnikówProgramowanie w C++ od podstaw
Najlepsze źródło wiedzy o podstawach i fundamentach C++ w najnowszej wersji (C++17)
Czas trwania: 15 total hours 1286 zapisanych uczestnikówProgramowanie obiektowe w C++
Kurs, który przybliży Ci obiektówkę na tyle, byś mógł zacząć programować obiektowo w C++ i świetnie się w tym czuć
Czas trwania: 12.5 total hours 653 zapisanych uczestnikówNastępca popularnej Symfonii C++:
Inne: :
Najlepsza książka o wzorcach projektowych z przykładami w C++: