Maison > développement back-end > C++ > Pourquoi les fonctions en ligne doivent-elles apparemment résider dans les fichiers d'en-tête ?

Pourquoi les fonctions en ligne doivent-elles apparemment résider dans les fichiers d'en-tête ?

DDD
Libérer: 2024-12-12 20:22:11
original
730 Les gens l'ont consulté

Why Must Inline Functions Seemingly Reside in Header Files?

Placement des fonctions en ligne

Question :Pourquoi les fonctions en ligne doivent-elles apparemment être définies dans un fichier d'en-tête ?

Explication :

Le inline la définition d'une fonction de classe ne réside pas obligatoirement dans un fichier d'en-tête. Cependant, la règle de définition unique (ODR) exige que les fonctions en ligne aient une définition identique dans chaque unité de traduction qui les utilise.

L'adhésion à l'ODR se fait plus facilement en incluant la définition dans un fichier d'en-tête, ce qui garantit disponibilité pour toutes les unités de traduction.

Si vous souhaitez restreindre la définition de la fonction à un seul fichier source, évitez de la déclarer en ligne. Cela permet au compilateur d'intégrer la fonction en cas de nécessité.

La décision de déclarer ou non une fonction en ligne dépend principalement de la conformité souhaitée avec l'ODR. L'application en ligne en ajoutant la restriction de mot clé n'est peut-être pas optimale.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal