Heim > Artikel > Backend-Entwicklung > Ausführliche Erklärung der C++-Friend-Funktionen: Wie verwende ich Friend-Funktionen in Vorlagenklassen?
In C++ können Friend-Funktionen auf private Mitglieder einer Klasse zugreifen, ohne Mitgliedsfunktion der Klasse zu werden. In einer Vorlagenklasse ähnelt die Deklaration einer Friend-Funktion der Deklaration in einer normalen Klasse und muss außerhalb der Klassendefinition deklariert werden. Um beispielsweise die Friend-Funktion printValue in der Vorlagenklasse MyClass zu deklarieren, müssen Sie die Funktion außerhalb der Klassendefinition mit dem Schlüsselwort Friend deklarieren. Eine Friend-Funktion kann nur auf Mitglieder der Klasse zugreifen, in der sie als Friend deklariert ist.
Detaillierte Erklärung der C++-Friend-Funktion: Verwendung in Vorlagenklassen
Einführung
Eine Friend-Funktion ist ein spezieller Funktionstyp in C++, der auf private Mitglieder einer Klasse zugreifen darf, ohne Mitglied zu werden Funktion der Klasse. Friend-Funktionen sind in bestimmten Situationen nützlich, beispielsweise wenn Daten oder Funktionen über Klassengrenzen hinweg gemeinsam genutzt werden müssen.
Friend-Funktionen in Template-Klassen
Das Deklarieren von Friend-Funktionen in einer Template-Klasse ist dem in einer normalen Klasse sehr ähnlich. Das folgende Beispiel zeigt, wie man eine Friend-Funktion printValue
in der Vorlagenklasse MyClass
deklariert: 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
angegeben werden, wie unten gezeigt: 🎜rrreee🎜🎜Praktischer Fall🎜🎜🎜Angenommen, wir haben eine Node
-Vorlagenklasse, die private Datenmember value und möchten eine Friend-Funktion display
deklarieren, um den Wert des Knotens anzuzeigen. 🎜rrreee🎜Beim Schreiben von Friend-Funktionen müssen Sie auf folgende Punkte achten: 🎜const
- oder virtual
-Modifikator haben. 🎜🎜Eine Funktion kann nur auf Mitglieder der Klasse zugreifen, die sie als Freund deklariert. 🎜🎜Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der C++-Friend-Funktionen: Wie verwende ich Friend-Funktionen in Vorlagenklassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!