Dal C al C++/Utilizzo basilare di librerie/I file di intestazione

Indice del libro

Anche lo standard del linguaggio C++, analogamente allo standard del linguaggio C, definisce una libreria standard. Tale libreria è molto più grande di quella del C e, per compatibilità con tale linguaggio, comprende l'intera libreria standard del linguaggio C, anche per le funzionalità ormai obsolete.

Anche in C++, prima di utilizzare una funzionalità di libreria è necessario dichiarare tale funzionalità. A differenza del C, però, è praticamente obbligatorio e comunque fortemente consigliato effettuare tali dichiarazioni tramite l'inclusione di un file di intestazione, usando la direttiva del preprocessore "#include <nome_del_file_di_intestazione>".

Un'altra differenza con il linguaggio C sta nel fatto che i file di intestazione standard hanno un nome di file privo di suffisso (o estensione). Per esempio:

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int main() {
    vector<string> vs;
    vs.push_back("abc");
    cout << vs.front();
}

Questo programma ha incluso il file di intestazione "string" per poter usare la classe "string"; ha incluso il file di intestazione "vector" per poter usare il template di classe "vector"; e ha incluso il file di intestazione "iostream" per poter usare il canale di uscita "cout".

La parte di libreria standard ereditata dal linguaggio C può essere inclusa in due modi: o con gli stessi file di intestazione del C o con nuovi file di intestazione, privi di suffisso e con il prefisso "c". Per esempio, per le funzioni di ingresso/uscita e per le funzioni matematiche, si ha:

// File di intestazione ereditati dal C:
#include <stdio.h>
#include <math.h>

//Nuovi file di intestazione:
#include <cstdio>
#include <cmath>