Heim > Artikel > Backend-Entwicklung > Können C++-Friend-Funktionen außerhalb einer Klasse deklariert werden?
In C++ können Friend-Funktionen außerhalb der Klasse deklariert werden, sie müssen jedoch unmittelbar an die Definition der Klasse angrenzen, mit dem Schlüsselwort Friend beginnen und sind nicht durch den Klassenbereich eingeschränkt.
Können C++-Friend-Funktionen außerhalb einer Klasse deklariert werden?
Vorwort
Friend-Funktionen sind spezielle Funktionen, die auf private/geschützte Mitglieder einer Klasse außerhalb der Klasse zugreifen. Sie werden außerhalb der Klassendefinition deklariert. In diesem Artikel werden die Deklarationsregeln außerhalb der Klasse für Friend-Funktionen in C++ erläutert und praktische Beispiele zur Veranschaulichung bereitgestellt.
Deklarationsregeln außerhalb der Klasse
In C++ können Friend-Funktionen außerhalb der Klasse deklariert werden, Sie müssen jedoch die folgenden Regeln beachten:
friend
. friend
关键字开头。实战案例
下面是一个展示友元函数类外声明的实战案例:
// 类 Person 定义 class Person { private: std::string name_; // 私有成员变量 public: Person(const std::string& name) : name_(name) {} }; // 友元函数声明(在 Person 类外) friend std::ostream& operator<<(std::ostream& os, const Person& person); // 主函数 int main() { Person p("John Doe"); std::cout << p << std::endl; // 调用友元函数 } // 友元函数定义(在 Person 类外) std::ostream& operator<<(std::ostream& os, const Person& person) { os << person.name_; return os; }
代码解释
在这个例子中:
Person
类定义包含一个私有成员变量 name_
。operator<<
函数声明为 Person
类的友元函数,并置于类的定义之后。Person
对象并输出其 name_
值,这需要调用友元函数。name_
私有成员变量并输出它的值。结论
C++ 中的友元函数可以在类的外部声明,但必须紧邻类的定义并使用 friend
Die Klassendefinition Person
enthält eine private Mitgliedsvariable name_
. 🎜operator<<
Die Funktion wird als Friend-Funktion der Klasse Person
deklariert und nach der Definition der Klasse platziert. 🎜In der Hauptfunktion wird ein Person
-Objekt erstellt und sein name_
-Wert ausgegeben, was den Aufruf der Friend-Funktion erfordert. 🎜Friend-Funktion wird auch außerhalb der Klasse definiert. Sie greift auf die private Mitgliedsvariable name_
zu und gibt ihren Wert aus. friend
verwenden. Die Deklaration einer Friend-Funktion ist nicht durch den Klassenbereich eingeschränkt und bietet somit die Flexibilität, auf private Mitglieder außerhalb der Klasse zuzugreifen. Aus Gründen der Klarheit und Lesbarkeit wird empfohlen, Friend-Funktionen in der Nähe der Definition der Klasse zu deklarieren. 🎜Das obige ist der detaillierte Inhalt vonKönnen C++-Friend-Funktionen außerhalb einer Klasse deklariert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!