Maison > développement back-end > C++ > Comment utiliser les fonctions d'ami dans les modèles de classe ?

Comment utiliser les fonctions d'ami dans les modèles de classe ?

WBOY
Libérer: 2024-04-17 10:36:01
original
513 Les gens l'ont consulté

Utilisez les fonctions d'ami dans les modèles de classe pour permettre aux fonctions externes d'accéder aux membres privés. Étapes : Déclarez une fonction ami : Utilisez le mot-clé « ami » dans le modèle de classe. Définir des fonctions amies : utilisez les paramètres de type du modèle de classe pour le rendre applicable à tous les types. Utiliser les fonctions amies : appelez les fonctions amies comme si vous appeliez des fonctions membres ordinaires.

Comment utiliser les fonctions dami dans les modèles de classe ?

Utilisation des fonctions ami dans les modèles de classe

L'utilisation des fonctions ami dans les modèles de classe permet aux fonctions externes d'accéder aux membres privés du modèle de classe. Voici comment déclarer et utiliser les fonctions d'ami dans un modèle de classe :

#include <iostream>

template <typename T>
class MyClass {
private:
  T data;

public:
  // 声明友元函数
  friend void print(const MyClass<T>& object);

  // 成员函数
  void set_data(const T& value) { data = value; }
};

// 友元函数定义
template <typename T>
void print(const MyClass<T>& object) {
  std::cout << "Data: " << object.data << std::endl;
}

int main() {
  MyClass<int> obj;
  obj.set_data(10);
  print(obj);  // 调用友元函数

  MyClass<std::string> strObj;
  strObj.set_data("Hello!");
  print(strObj); // 调用友元函数

  return 0;
}
Copier après la connexion

Sortie :

Data: 10
Data: Hello!
Copier après la connexion

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!

Étiquettes associées:
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