Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich Friend-Funktionen in Klassenvorlagen?

Wie verwende ich Friend-Funktionen in Klassenvorlagen?

WBOY
WBOYOriginal
2024-04-17 10:36:01441Durchsuche

Verwenden Sie Friend-Funktionen in Klassenvorlagen, um externen Funktionen den Zugriff auf private Mitglieder zu ermöglichen. Schritte: Deklarieren Sie eine Friend-Funktion: Verwenden Sie das Schlüsselwort „friend“ in der Klassenvorlage. Definieren Sie Friend-Funktionen: Verwenden Sie die Typparameter der Klassenvorlage, um sie auf alle Typen anwendbar zu machen. Verwenden Sie Friend-Funktionen: Rufen Sie Friend-Funktionen genauso auf wie normale Member-Funktionen.

Wie verwende ich Friend-Funktionen in Klassenvorlagen?

Freundfunktionen in Klassenvorlagen verwenden

Freundfunktionen in Klassenvorlagen verwenden ermöglicht externen Funktionen den Zugriff auf private Mitglieder der Klassenvorlage. So deklarieren und verwenden Sie Friend-Funktionen in einer Klassenvorlage:

#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;
}

Ausgabe:

Data: 10
Data: Hello!

Das obige ist der detaillierte Inhalt vonWie verwende ich Friend-Funktionen in Klassenvorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn