Exploration des modèles de classe avec des amis de classe de modèles
Lors de la définition d'une classe d'arbre binaire (BT) et de sa classe d'éléments (BE), il est nécessaire d'établir une relation d'amitié pour que BT puisse accéder aux membres privés de BE. Cependant, il est crucial de comprendre les mécanismes sous-jacents pour définir correctement la relation.
À l'origine, vous avez tenté de déclarer la relation d'amitié en tant que classe d'amis template
Au lieu de cela, vous devez utiliser des noms de paramètres de modèle différents, tels que :
templateclass BE { template friend class BT; };
Cette déclaration indique que toute classe BT, quels que soient ses arguments de modèle, est l'amie de toutes les classes BE avec des arguments de modèle correspondants.
Considérez les exemples suivants pour clarifier davantage les différents types. des relations amicales :
templatestruct foo { template friend class bar; };
Dans ce cas, bar est un ami de foo quels que soient les arguments du modèle de bar. Toute spécialisation de bar serait amie de toute spécialisation de foo.
templatestruct foo { friend class bar ; };
Ici, bar n'est un ami de foo que si son argument de modèle correspond à celui de foo. Ainsi, seul bar
Dans votre scénario spécifique, la classe d'ami bar
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3