Menu
CoddyTech

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 per l'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 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 delle intestazioni (#ifndef, #define, #endif) impediscono che un’intestazione venga inclusa più volte. Il file .h dichiara cosa 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 dell'header
  • 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 age >= 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