Declaration vs Definition (classe)
Bonsoir à tous,
Dans mon apprentissage du C++ je me heurte à un concept basique, sur lequel je pourrais faire l'impasse en prétextant que je sais "quoi faire pour que ça marche", mais sur lequel je voudrais lever toute ambiguité.
Il s'agit de la différence entre une déclaration et une définition particulièrement dans le cas d'une classe.
si j'écris :
Je déclare une classe de type A.
Si j'écris en revanche
je définis une classe de type A.
rien d'embêtant jusque la. Si je place la définition de cette classe dans un fichier .h e que je l'inclus dans deux fichiers sources différents, je n'aurais pas de pb à la compilation + édition des liens
En revanche si je rajoute dans mon header, une définition de fonction, par exemple à la suite de la définition de ma classe. Disons :
la j'aurais un problème à l'édition des liens, car la fonction aura été définie deux fois (une fois dans chaque fichier objet où elle aura été incluse).
Pourquoi donc cela ne pose-t-il donc pas de problème pour le type classe(classe que j'ai également définie au même titre que ma fonction f) ? N'y a-t-il pas un principe de base en c++ qui interdit la double définition, et ce quelque soit le type?
Merci et en espérant que ma question n'est pas trop stupide.
Bonne soirée,
Romain