Compilatore C++ Online - Esegui, Testa e Debugga Istantaneamente

Scrivi, compila ed esegui codice C++ istantaneamente nel tuo browser con il nostro compilatore C++ online gratuito. Perfetto per imparare, testare rapidamente e prepararsi per colloqui — nessuna configurazione o installazione necessaria.

💡 Guida ai Fondamenti di C++ per Principianti

1. Dichiarazione di Variabili e Costanti

C++ richiede di dichiarare il tipo di ogni variabile. Usa const per definire valori di sola lettura che non possono essere modificati dopo l'inizializzazione.

int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;

// Costanti
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";

// Tentare di modificare una const causerà un errore in fase di compilazione
// MAX_USERS = 200; // ❌ errore

2. Condizionali (if / switch)

Usa if, else if, else per ramificare. Usa switch per valori multipli.

int x = 2;
if (x == 1) {
    std::cout << "Uno\n";
} else if (x == 2) {
    std::cout << "Due\n";
} else {
    std::cout << "Altro\n";
}

// Switch-case
switch (x) {
    case 1:
        std::cout << "Uno\n";
        break;
    case 2:
        std::cout << "Due\n";
        break;
    default:
        std::cout << "Altro\n";
}

3. Cicli

Usa for, while, e do-while per ripetere blocchi di codice.

for (int i = 0; i < 3; i++) {
    std::cout << i << "\n";
}

int n = 3;
while (n > 0) {
    std::cout << n << "\n";
    n--;
}

4. Array

Gli array memorizzano più elementi dello stesso tipo.

int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";

5. Manipolazione di Array/Vettori

Usa std::vector per array dinamici.

#include <vector>

std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();

for (int n : nums) {
    std::cout << n << " ";
}

6. Input/Output da Console

Usa std::cin per l'input e std::cout per l'output.

std::string name;
std::cout << "Inserisci il tuo nome: ";
std::cin >> name;
std::cout << "Ciao, " << name << "\n";

7. Funzioni

Le funzioni raggruppano logica riutilizzabile. Usa parametri e tipi di ritorno.

int add(int a, int b) {
    return a + b;
}

std::cout << add(3, 4);

8. Mappe

std::map memorizza coppie chiave-valore come i dizionari.

#include <map>

std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];

9. Gestione delle Eccezioni

Usa try e catch per gestire errori a runtime.

try {
    throw std::runtime_error("Si è verificato un errore");
} catch (const std::exception& e) {
    std::cout << e.what();
}

10. Input/Output da File

Usa fstream per leggere e scrivere su file.

#include <fstream>

std::ofstream out("file.txt");
out << "Ciao File";
out.close();

std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();

11. Manipolazione di Stringhe

Le stringhe in C++ supportano metodi come length(), substr(), e find().

std::string text = "Hello World";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("World");

12. Classi & Oggetti

C++ supporta la programmazione orientata agli oggetti usando le classi.

class Person {
  public:
    std::string name;
    Person(std::string n) : name(n) {}
    void greet() { std::cout << "Ciao, sono " << name; }
};

Person p("Alice");
p.greet();

13. Puntatori

Un puntatore memorizza l'indirizzo di memoria di un'altra variabile. Usa & per ottenere un indirizzo, e * per dereferenziare (accedere al valore all'indirizzo).

int x = 10;
int* ptr = &x;

std::cout << "Valore di x: " << x << "\n";
std::cout << "Indirizzo di x: " << ptr << "\n";
std::cout << "Valore dal puntatore: " << *ptr << "\n";

// Modifica x tramite puntatore
*ptr = 20;
std::cout << "x aggiornato: " << x << "\n";