Skip to content

LucaR01/Guida-Cpp

Repository files navigation

Guida C++

Una semplice guida in italiano per programmare in C++.

GitHub repo size GitHub issues Lines of code GitHub License GitHub Repo stars

GitHub release (latest by date) GitHub Release Date GitHub last commit GitHub contributors C++ Standard

Che cos'è questa guida?

Questa è un piccola e semplice guida che ho voluto scrivere per ripassare, approfondire e imparare meglio a mia volta questo meraviglioso linguaggio che è C++.

Questa non è una narrazione è più una raccolta di frammenti di codice, brevi spiegazioni e semplici esempi sulle componenti del linguaggio.

Cosa presenta questa guida:

Questa guida presenta 5 capitoli:

  • Basi del Linguaggio
  • Concetti Intermedi
  • Concetti Avanzati
  • Le gemme degli Algoritmi
  • Linee guida del Linguaggio

Basi del Linguaggio

Questo capitolo tratta i concetti basilari del linguaggio, quali: variabili, costanti, tipologie, operatori, costrutti, if else, loops, arrays, matrici, enums, caratteri e stringhe, funzioni, header files, namespaces, strutture, union, classi, convenzioni del linguaggio e tanto altro..


Concetti Intermedi

Qui si passa a concetti un po' più complicati e importanti del linguaggio: templates, vector, iteratori, virtual, polimorfismo, tipi di casts, tipi di costruttori, move semantics, classi astratte e tante altre curiosità.


Concetti Avanzati

In questo capitolo vengono trattati argomenti più avanzati del linguaggio come: friend, smart pointers, RAII, Return Type Resolver, Type Erasure, CRTP, Virtual Constructor, SFINAE, Proxy.


Le gemme degli Algoritmi

Qui si va nelle viscere della Libreria degli Algoritmi trattando tutti i principali argomenti a riguardo, ovvero operazioni su: sequenze non modificabili, sequenze modificabili, partizioni, ordinamento, ricerca binaria, merge, insiemi, heap, min e max, comparazione, permutazioni, numeriche, memoria non inizializzata e anche argomenti non della libreria, ma comunque utili ed inerenti: optionals, execution policies e argomenti sul C++20: Ranges, ranges views, Concepts, Modules, Coroutines.


Linee guida del Linguaggio

In questo capitolo vengono trattate le convenzioni, le linee guida del C++ in base alle CppCoreGuidelines.


Possibili capitoli che potrei aggiungere:

  • Multithreading
  • Performance | Clean Code | Competitive Programming
  • Design Patterns
  • C++23