Pourquoi les fichiers d'en-tête (.h) et les fichiers d'implémentation (.cpp) sont-ils nécessaires en C++ ?
Bonjour à tous ! Je viens de commencer à apprendre le C++ et je n'arrive pas à comprendre pourquoi cette séparation entre les fichiers header et les fichiers .cpp est nécessaire. En Java ou Python, j'écrivais tout le code dans un seul fichier, et tout fonctionnait. Mais ici, c'est un enfer avec #include, #pragma once et d'autres directives.
Par exemple, j'écris un programme simple :
```cpp
// main.cpp
#include
void sayHello() {
std::cout << "Hello!" << std::endl;
}
int main() {
sayHello();
return 0;
}
```
Et ça fonctionne. Pourquoi devrais-je créer un sayHello.h et un sayHello.cpp séparés ? On peut tout écrire dans un seul fichier. J'ai entendu dire que c'est nécessaire pour l'organisation du code et pour éviter les erreurs de linkage, mais je ne comprends pas comment.
Ce qui me fait surtout peur, c'est quand je vois que dans le fichier .h on écrit les déclarations de fonctions (prototypes), et dans le .cpp l'implémentation. Et si j'oublie d'ajouter quelque chose, le compilateur génère une erreur. Pourquoi ne pas tout stocker au même endroit ? Expliquez-moi, s'il vous plaît, avec des exemples, pourquoi cette séparation est nécessaire et comment l'utiliser correctement.