Menu
Coddy logo textTech

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 les fichiers d’en-tête (.h) pour les déclarations et les fichiers source (.cpp) pour les implémentations.

Fichier d’en-tête avec des gardes 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’en-tête (#ifndef, #define, #endif) empêchent l’inclusion multiple d’un fichier d’en-tête. Le fichier .h déclare ce qui existe (les prototypes), tandis que le fichier .cpp définit son fonctionnement (les implémentations).

challenge icon

Défi

Moyen

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

  • helpers.h : déclarations des fonctions avec des protections contre les inclusions multiples
  • 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 age >= 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