En C++, les fonctions ami peuvent être déclarées en dehors de la classe, mais elles doivent être immédiatement adjacentes à la définition de la classe, commencer par le mot-clé ami et ne sont pas limitées par la portée de la classe.
Les fonctions amies C++ peuvent-elles être déclarées en dehors d'une classe ?
Préface
Les fonctions d'ami sont des fonctions spéciales qui accèdent aux membres privés/protégés d'une classe en dehors de la classe. Ils sont déclarés en dehors de la définition de la classe. Cet article abordera les règles de déclaration hors classe pour les fonctions amies en C++ et fournira des cas pratiques à illustrer.
Règles de déclaration hors classe
En C++, les fonctions ami peuvent être déclarées en dehors de la classe, mais vous devez faire attention aux règles suivantes :
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
La définition de la classe Person
contient une variable membre privée name_
. 🎜operator<<
La fonction est déclarée comme fonction amie de la classe Person
et placée après la définition de la classe. 🎜Dans la fonction principale, un objet Person
est créé et sa valeur name_
est affichée, ce qui nécessite d'appeler la fonction ami. 🎜La fonction Friend est également définie en dehors de la classe. Elle accède à la variable membre privée name_
et affiche sa valeur. friend
. La déclaration d'une fonction ami n'est pas limitée par la portée de la classe, offrant ainsi la flexibilité d'accéder aux membres privés en dehors de la classe. Pour plus de clarté et de lisibilité, il est recommandé de déclarer les fonctions amies à proximité de la définition de la classe. 🎜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!