Menu
CoddyTech

Fichiers d’en-tête et fichiers source

Fait partie de la section Programmation Orientée Objet du Journey C++ de Coddy. Leçon 3 sur 104.

En C++, le code est réparti entre des fichiers d’en-tête (.h) pour les déclarations et des fichiers source (.cpp) pour les implémentations.

Fichier d'en-tête avec des protections d'inclusion (helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

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

#endif

Fichier source avec les implémentations (helpers.cpp)

#include "helpers.h"

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

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

Les utiliser dans main

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

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

Sortie :

Hello, Alice!
8

Les gardes d’inclusion (#ifndef, #define, #endif) empêchent qu’un fichier d’en-tête soit inclus plusieurs fois. Le fichier .h déclare ce qui existe (les prototypes), le fichier .cpp définit son fonctionnement (les implémentations).

challenge icon

Défi

Moyen

Créez trois fonctions auxiliaires réparties entre un fichier d’en-tête et un fichier source :

  • helpers.h : déclarations des fonctions avec des gardes d’inclusion
  • helpers.cpp : implémentations des fonctions

Fonctions à créer :

  • greet(name) : renvoie "Hello, <name>!"
  • ageInTenYears(age) : renvoie age + 10
  • checkAdult(name, age) : renvoie "<name> is an adult" si l’âge est >= 18, sinon "<name> is a minor"

Essayez vous-même

#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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur C++ en ligne