Maison > développement back-end > C++ > Pourquoi les définitions de fonctions en ligne doivent-elles être placées dans les fichiers d'en-tête ?

Pourquoi les définitions de fonctions en ligne doivent-elles être placées dans les fichiers d'en-tête ?

Mary-Kate Olsen
Libérer: 2024-12-08 05:05:09
original
540 Les gens l'ont consulté

Why Must Inline Function Definitions Be Placed in Header Files?

Pourquoi les définitions de fonctions en ligne résident dans les fichiers d'en-tête

En C, déclarer les fonctions membres de la classe comme en ligne nécessite leur implémentation dans le fichier d'en-tête. Cette exigence découle de la « règle de définition unique (ODR) » pour les fonctions en ligne, qui exige qu'une définition identique existe dans toutes les unités de traduction utilisant la fonction.

La méthode la plus simple pour garantir le respect de l'ODR consiste à inclure la définition. dans un fichier d'en-tête accessible à toutes les unités de traduction. Ce faisant, le compilateur peut localiser et utiliser la même définition dans toutes les instances où la fonction est appelée.

Tenter de placer la définition en ligne dans un fichier .cpp entraîne une erreur de symbole externe non résolue. Cela se produit car le compilateur ne peut pas localiser la définition de fonction dans l'unité de traduction où elle est appelée.

Pour réitérer, les définitions de fonctions en ligne dans les fichiers d'en-tête facilitent la conformité ODR en garantissant qu'une définition identique existe dans chaque unité de traduction. Cependant, il est important de noter que déclarer une fonction en ligne ne garantit pas son intégration par le compilateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal