Il concetto
Dichiarazioni, definizioni e file mancanti nella costruzione.
Il collegatore lavora dopo la compilazione dei sorgenti. Una funzione può essere dichiarata correttamente e usata nel codice, ma la sua definizione deve essere presente negli oggetti o nelle librerie collegati. Una dichiarazione informa il compilatore; non crea da sola il corpo della funzione.
Nel progetto di esempio saluta è dichiarata in un’intestazione e definita in saluto.cpp. Se compili soltanto main.cpp, il compilatore accetta la chiamata, ma il collegatore non trova la funzione. Devi includere nella costruzione anche saluto.cpp, non copiare il suo contenuto nel file header.
Anche definizioni duplicate possono causare errori: due sorgenti con main o una funzione non inline definita più volte producono conflitti. Risolvi il ruolo dei file prima di cercare librerie sconosciute. Nei primi progetti tutti i file necessari sono quelli che hai scritto.
Procedura passo passo
Una sequenza da eseguire sul proprio computer.
- Apri i tre file dell’esempio multi-file.
- Leggi la dichiarazione in saluto.h e la definizione in saluto.cpp.
- Compila solo main.cpp per osservare la definizione mancante.
- Crea un progetto console e includi entrambi i file .cpp.
- Costruisci il progetto e verifica che il messaggio venga stampato.
Codice e risultato
Il codice va aperto e compilato in Dev-C++; il riquadro mostra il risultato previsto.
main.cpp
#include "saluto.h"
int main() {
saluta();
return 0;
}
saluto.h
#ifndef SALUTO_H
#define SALUTO_H
void saluta();
#endif
saluto.cpp
#include <iostream>
#include "saluto.h"
void saluta() {
std::cout << "Progetto con tre file\n";
}
Risultato atteso
Progetto con tre file
Questo riquadro è una previsione didattica, non una console che esegue il C++ nel browser.
Controllare il risultato
Confronta ciò che accade con una previsione formulata prima della prova.
| Controllo | Risultato o criterio |
|---|---|
| File inclusi | main.cpp e saluto.cpp nella costruzione |
| Dichiarazione | saluto.h incluso dove serve |
| Risultato | Progetto con tre file dopo una ricostruzione |
Errori da evitare
Le cause da controllare prima di ripetere l’operazione.
- Scambiare una dichiarazione per una definizione.
- Aprire saluto.cpp senza aggiungerlo al progetto.
- Aggiungere un secondo main per tentare di eliminare un errore.
Riferimenti: Compilazione: documentazione ufficiale.