Menu
Coddy logo textTech

File header e file sorgente

Fa parte della sezione Programmazione orientata agli oggetti del percorso C++ di Coddy. Lezione 3 di 104.

In C++, il codice è suddiviso in file header (.h) per le dichiarazioni e file sorgente (.cpp) per le implementazioni.

File header con protezioni dell’header (helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

std::string greet(std::string name);
int addNumbers(int a, int b);

#endif

File sorgente con le implementazioni (helpers.cpp)

#include "helpers.h"

std::string greet(std::string name) {
    return "Hello, " + name + "!";
}

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

Usarli in main

#include <iostream>
#include "helpers.h"

int main() {
    std::cout << greet("Alice") << std::endl;
    std::cout << addNumbers(5, 3) << std::endl;
    return 0;
}

Output:

Hello, Alice!
8

Le protezioni degli header (#ifndef, #define, #endif) impediscono che un header venga incluso più volte. Il file .h dichiara ciò che esiste (prototipi), il file .cpp definisce come funziona (implementazioni).

challenge icon

Sfida

Medio

Crea tre funzioni helper suddivise tra un file header e un file sorgente:

  • helpers.h: dichiarazioni delle funzioni con guardie di inclusione
  • helpers.cpp: implementazioni delle funzioni

Funzioni da creare:

  • greet(name): restituisce "Hello, <name>!"
  • ageInTenYears(age): restituisce age + 10
  • checkAdult(name, age): restituisce "<name> is an adult" se l’età è >= 18, altrimenti "<name> is a minor"

Provalo tu

#include <iostream>
#include "helpers.h"

int main() {
    std::string name;
    int age;
    std::getline(std::cin, name);
    std::cin >> age;
    
    std::cout << greet(name) << std::endl;
    std::cout << "In 10 years you will be " << ageInTenYears(age) << std::endl;
    std::cout << checkAdult(name, age) << std::endl;
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C++ online