C++ moderno e alternative C

Overload di funzione e alternative C

C++ sceglie overload dai parametri; C richiede nomi distinti o dispatch generico.

Che cos’è Overload di funzione e alternative C?

C++ sceglie overload dai parametri; C richiede nomi distinti o dispatch generico.

Usa un’operazione con più tipi.

Punti importanti

  • Comprendi prima il meccanismo C.
  • Usa RAII e value semantics per ownership.
  • Preferisci astrazioni type-safe a macro e cast.

Esempi di codice C e C++

C
Esegui →
main.c
#include <stdio.h>

int max_int(int left, int right) {
    return left > right ? left : right;
}

double max_double(double left, double right) {
    return left > right ? left : right;
}

int main(void) {
    printf("%d %.1f\n", max_int(3, 8), max_double(4.5, 2.0));
}
Output previsto
8 4.5
C++
Esegui →
main.cpp
#include <iostream>

int maximum(int left, int right) {
    return left > right ? left : right;
}

double maximum(double left, double right) {
    return left > right ? left : right;
}

int main() {
    std::cout << maximum(3, 8) << ' '
              << maximum(4.5, 2.0) << '\n';
}
Output previsto
8 4.5

Confronto tra C e C++

C codifica il tipo nel nome; C++ mantiene un nome e risolve a compile time senza costo runtime.

C

C usa prefissi, callback, macro e context espliciti.

C++

Il linguaggio offre astrazioni con scope, type-safe e spesso zero-overhead.

Esercizi pratici

Esegui entrambe le versioni e modificale per osservare le diverse garanzie.

  • Scrivi prima il meccanismo C.
  • Sostituisci cleanup manuale con RAII.
  • Misura allocation e virtual dispatch.