Maison >développement back-end >C++ >Explication détaillée des fonctions amies C++ : Comment utiliser les fonctions amies dans les classes modèles ?
En C++, les fonctions amies peuvent accéder aux membres privés d'une classe sans devenir une fonction membre de la classe. Dans une classe modèle, la déclaration d'une fonction amie est similaire à la déclaration d'une classe normale et doit être déclarée en dehors de la définition de la classe. Par exemple, pour déclarer la fonction ami printValue dans la classe modèle MyClass, vous devez déclarer la fonction en dehors de la définition de classe à l'aide du mot-clé ami. Une fonction ami ne peut accéder qu’aux membres de la classe dans laquelle elle est déclarée ami.
Explication détaillée de la fonction ami C++ : utilisation dans les classes de modèles
Introduction
Une fonction ami est un type spécial de fonction en C++ qui est autorisé à accéder aux membres privés d'une classe, sans devenir membre fonction de la classe. Les fonctions Friend sont utiles dans certaines situations, par exemple lorsque des données ou des fonctionnalités doivent être partagées au-delà des limites de classe.
Fonctions d'ami dans les classes de modèles
La déclaration des fonctions d'ami dans une classe de modèle est très similaire à celle d'une classe normale. L'exemple suivant montre comment déclarer une fonction ami printValue
dans la classe modèle MyClass
: MyClass
中声明友元函数 printValue
:
template <typename T> class MyClass { public: T value; friend void printValue(const MyClass<T>& obj) { std::cout << "Value: " << obj.value << std::endl; } };
使用友元函数
要使用友元函数,必须在类的定义外部声明该函数。可以使用 friend
关键字来指定友元函数,如下所示:
template <typename T> void printValue(const MyClass<T>& obj);
实战案例
假设我们有一个 Node
模板类,其中包含私有数据成员 value
,并想要声明一个友元函数 display
来显示节点的值。
template <typename T> class Node { public: T value; friend void display(const Node<T>& node) { std::cout << "Node Value: " << node.value << std::endl; } };
在编写友元函数时,需要注意以下几点:
const
或 virtual
rrreeefriend
, comme indiqué ci-dessous : 🎜rrreee🎜🎜Cas pratique🎜🎜🎜Supposons que nous ayons une classe de modèle Node
qui contient un membre de données privé value, et souhaitez déclarer une fonction amie display
pour afficher la valeur du nœud. 🎜rrreee🎜Lors de l'écriture de fonctions amies, vous devez faire attention aux points suivants : 🎜const
ou virtuel
. 🎜🎜Une fonction ne peut accéder qu'aux membres de la classe qui la déclare comme ami. 🎜🎜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!