Pełna Dokumentacja C++ dla Profesjonalnego Informatyka

Pełna Dokumentacja C++ dla Profesjonalnego Informatyka Wprowadzenie do C++ C++ to język programowania ogólnego przeznaczenia, który łączy cechy programowania proceduralnego, obiektowego oraz funkcyjnego. Jego główną zaletą jest wydajność oraz duża kontrola nad zasobami sprzętowymi. Historia Stworzony przez Bjarne Stroustrupa w 1983 roku jako rozszerzenie C Standaryzowany przez ISO (np. C++98, C++03, C++11, C++14, C++17, C++20, C++23) Podstawy składni C++ Struktura programu include using namespace std; int main() { cout

Mar 31, 2025 - 09:56
 0
Pełna Dokumentacja C++ dla Profesjonalnego Informatyka

Pełna Dokumentacja C++ dla Profesjonalnego Informatyka

  1. Wprowadzenie do C++

C++ to język programowania ogólnego przeznaczenia, który łączy cechy programowania proceduralnego, obiektowego oraz funkcyjnego. Jego główną zaletą jest wydajność oraz duża kontrola nad zasobami sprzętowymi.

Historia

Stworzony przez Bjarne Stroustrupa w 1983 roku jako rozszerzenie C

Standaryzowany przez ISO (np. C++98, C++03, C++11, C++14, C++17, C++20, C++23)

  1. Podstawy składni C++

Struktura programu

include

using namespace std;

int main() {
cout << "Witaj, C++!" << endl;
return 0;
}

Typy danych

Podstawowe: int, float, double, char, bool

Modyfikatory: signed, unsigned, short, long

Struktury i klasy: struct, class

Typy wskaźnikowe: int*, char*

Typy wyliczeniowe: enum

  1. Operatory w C++

Arytmetyczne: +, -, *, /, %

Porównawcze: ==, !=, <, >, <=, >=

Logiczne: &&, ||, !

Bitowe: &, |, ^, ~, <<, >>

Przypisania: =, +=, -=, *=, /=, &=, |=, ^=, <<=, >>=

  1. Struktury sterujące

Pętle: for, while, do-while

Instrukcje warunkowe: if, else, switch

Obsługa błędów: try, catch, throw

try {
throw runtime_error("Błąd!");
} catch (const exception& e) {
cout << "Wyjątek: " << e.what() << endl;
}

  1. Programowanie obiektowe

Klasy i obiekty

class Samochod {
public:
string marka;
void pokaz() { cout << "Marka: " << marka << endl; }
};

Konstruktory i destruktory

class Auto {
public:
Auto() { cout << "Konstruktor!" << endl; }
~Auto() { cout << "Destruktor!" << endl; }
};

Dziedziczenie

class Pojazd {
public:
int kola;
};

class Samochod : public Pojazd {
public:
string marka;
};

Polimorfizm

class Bazowa {
public:
virtual void wyswietl() { cout << "Bazowa"; }
};
class Pochodna : public Bazowa {
public:
void wyswietl() override { cout << "Pochodna"; }
};

  1. Standardowa biblioteka C++ (STL)

Kontenery

vector, list, deque, stack, queue, priority_queue

set, map, unordered_set, unordered_map

Algorytmy

Sortowanie: sort(), stable_sort()

Wyszukiwanie: find(), binary_search()

Modyfikacja: transform(), remove()

vector v = {3, 1, 4, 1, 5};
sort(v.begin(), v.end());

  1. Zarządzanie pamięcią

Alokacja dynamiczna: new, delete

Smart pointery: unique_ptr, shared_ptr, weak_ptr

Obsługa pamięci w STL: std::vector, std::string

unique_ptr p = make_unique(10);
cout << *p;

  1. Programowanie wielowątkowe

Dokumentacja C++ dla Profesjonalistów

  1. Wprowadzenie do C++ C++ to język programowania ogólnego przeznaczenia, który łączy programowanie proceduralne, obiektowe i generyczne. Jest rozwijany od lat 80. i nadal pozostaje jednym z najpopularniejszych języków w branży IT.

Główne cechy C++:

Wysoka wydajność,

Obsługa programowania obiektowego (OOP),

Programowanie niskopoziomowe (blisko sprzętu),

Silne typowanie i możliwość manipulacji pamięcią,

Standardowa biblioteka STL (Standard Template Library).

  1. Składnia i Podstawy 2.1 Struktura programu C++ cpp Kopiuj Edytuj #include

int main() {
std::cout << "Witaj, świecie!" << std::endl;
return 0;
}
2.2 Typy danych
cpp
Kopiuj
Edytuj
int liczba = 10;
double liczba_zmiennoprzecinkowa = 3.14;
char znak = 'A';
bool wartosc_logicza = true;
std::string tekst = "Hello";
Modyfikatory:

signed, unsigned, short, long

Typy użytkownika:

typedef, using

2.3 Operatory
Aritmetyczne: +, -, *, /, %

Porównania: ==, !=, <, >, <=, >=

Logiczne: &&, ||, !

Bitowe: &, |, ^, ~, <<, >>

Przypisania: =, +=, -=, *=, /=, %=

Inkrementacja/dekrementacja: ++, --

Warunkowy: ?:

2.4 Struktury sterujące
Instrukcje warunkowe
cpp
Kopiuj
Edytuj
if (x > 10) {
std::cout << "Większe niż 10";
} else {
std::cout << "Mniejsze lub równe 10";
}
Pętle
cpp
Kopiuj
Edytuj
for (int i = 0; i < 10; i++) { std::cout << i << " "; }

int j = 0;
while (j < 10) { j++; }

do { std::cout << "Raz wykonane"; } while (false);
Instrukcja switch
cpp
Kopiuj
Edytuj
switch (x) {
case 1: std::cout << "Jeden"; break;
default: std::cout << "Nieznane";
}

  1. Programowanie obiektowe 3.1 Klasy i obiekty cpp Kopiuj Edytuj class Samochod { public: std::string marka; void jedz() { std::cout << "Jazda!"; } }; Samochod auto1; auto1.marka = "BMW"; auto1.jedz(); 3.2 Konstruktor i destruktor cpp Kopiuj Edytuj class Klasa { public: Klasa() { std::cout << "Konstruktor"; } ~Klasa() { std::cout << "Destruktor"; } }; 3.3 Dziedziczenie cpp Kopiuj Edytuj class Pojazd { public: void info() { std::cout << "To pojazd"; } }; class Samochod : public Pojazd {}; 3.4 Polimorfizm cpp Kopiuj Edytuj class Baza { public: virtual void pokaz() { std::cout << "Baza"; } }; class Pochodna : public Baza { public: void pokaz() override { std::cout << "Pochodna"; } };
  2. Szablony i STL 4.1 Szablony funkcji cpp Kopiuj Edytuj template T maksimum(T a, T b) { return (a > b) ? a : b; } 4.2 Szablony klas cpp Kopiuj Edytuj template class Kontener { T dane; public: Kontener(T d) : dane(d) {} void pokaz() { std::cout << dane; } }; 4.3 Standard Template Library (STL) Kontenery vector

list

map

set

unordered_map

Przykład:
cpp
Kopiuj
Edytuj

include

std::vector liczby = {1, 2, 3};
for (int x : liczby) { std::cout << x << " "; }

  1. Zarządzanie pamięcią 5.1 Dynamiczna alokacja cpp Kopiuj Edytuj int* ptr = new int(10); delete ptr; 5.2 Zarządzanie pamięcią w klasach cpp Kopiuj Edytuj class Klasa { private: int* wsk; public: Klasa() { wsk = new int(100); } ~Klasa() { delete wsk; } }; 5.3 Smart Pointers cpp Kopiuj Edytuj #include std::unique_ptr p1 = std::make_unique(10);
  2. Programowanie wielowątkowe cpp Kopiuj Edytuj #include void funkcja() { std::cout << "Wątek!"; } std::thread t1(funkcja); t1.join();
  3. Obsługa wyjątków cpp Kopiuj Edytuj try { throw std::runtime_error("Błąd!"); } catch (const std::exception& e) { std::cout << "Wyjątek: " << e.what(); }
  4. Zaawansowane techniki 8.1 Metaprogramowanie cpp Kopiuj Edytuj template struct Silnia { static const int wartosc = N * Silnia::wartosc; }; template<> struct Silnia<0> { static const int wartosc = 1; }; 8.2 Programowanie funkcyjne cpp Kopiuj Edytuj #include std::function dodaj = { return a + b; };
  5. Tworzenie bibliotek Tworzenie plików nagłówkowych (.h) i implementacyjnych (.cpp):

cpp
Kopiuj
Edytuj
// plik.h

pragma once

void funkcja();

// plik.cpp

include "plik.h"

void funkcja() { std::cout << "Biblioteka!"; }

  1. Narzędzia i kompilacja 10.1 Kompilacja g++ sh Kopiuj Edytuj g++ -o program program.cpp ./program 10.2 Debugowanie gdb sh Kopiuj Edytuj g++ -g program.cpp gdb ./program Podsumowanie Dokumentacja ta pokrywa: ✅ Podstawy C++ ✅ Programowanie obiektowe ✅ Szablony i STL ✅ Zarządzanie pamięcią ✅ Programowanie wielowątkowe ✅ Zaawansowane techniki