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

Fichier d'en-tête avec des gardes d'en-tête (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;
}

Utilisation 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 un en-tête d'être inclus plusieurs fois. Le fichier .h déclare ce qui existe (prototypes), le fichier .cpp définit comment cela fonctionne (implémentations).

challenge icon

Défi

Moyen

Créez trois fonctions d'aide réparties dans un fichier d'en-tête et un fichier source :

  • helpers.h — Déclarations de fonctions avec des gardes d'en-tête
  • helpers.cpp — Implémentations de fonctions

Fonctions à créer :

  • greet(name) — retourne "Hello, <name>!"
  • ageInTenYears(age) — retourne age + 10
  • checkAdult(name, age) — retourne "<name> is an adult" si age >= 18, sinon "<name> is a minor"

Aide-mémoire

Le code C++ est organisé en fichiers d'en-tête (.h) pour les déclarations et en fichiers sources (.cpp) pour les implémentations.

Les gardes d'en-tête (header guards) empêchent les inclusions multiples :

#ifndef HELPERS_H
#define HELPERS_H
// déclarations ici
#endif

Le fichier d'en-tête (helpers.h) contient les déclarations de fonctions :

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

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

#endif

Le fichier source (helpers.cpp) contient les implémentations :

#include "helpers.h"

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

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

Utilisation des fonctions dans main :

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

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

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