Maison > développement back-end > C++ > Quelles sont les règles de déclaration des fonctions amies C++ ?

Quelles sont les règles de déclaration des fonctions amies C++ ?

WBOY
Libérer: 2024-04-16 08:57:02
original
976 Les gens l'ont consulté

Les règles de déclaration de la fonction ami sont les suivantes : la déclaration doit être en dehors de la classe. Peut être déclaré en tant que fonction membre ou fonction globale. Les objets d'une classe peuvent être transmis via des pointeurs ou des références.

C++ 友元函数的声明规则有哪些?

Règles de déclaration de fonction ami C++

Déclaration de fonction ami

Une fonction ami est une fonction spéciale qui peut accéder aux membres privés d'une classe. Pour déclarer une fonction ami en C++, utilisez le mot-clé friend comme suit : friend 关键字,如下所示:

// 声明 MyClass 类的友元函数 printInfo()
friend void printInfo(const MyClass& obj);
Copier après la connexion

声明规则

以下是在 C++ 中声明友元函数的规则:

  • 友元函数的声明必须位于类的外部。
  • 友元函数可以声明为成员函数(带作用域解析符)或全局函数(不带作用域解析符)。
  • 可以通过指针或引用来传递类的对象。

实战案例

考虑以下 MyClass 类,它有私有成员变量 _data

class MyClass {
private:
    int _data;
public:
    // ...
};
Copier après la connexion

我们可以定义一个友元函数 printInfo() 来访问 _data

// 声明 printInfo() 为 MyClass 的友元函数
friend void printInfo(const MyClass& obj) {
    std::cout << "Data: " << obj._data << std::endl;
}
Copier après la connexion

在主函数中,我们可以实例化 MyClass

int main() {
    MyClass obj;
    obj._data = 42;  // 访问私有成员(仅在友元函数中允许)
    printInfo(obj);  // 调用友元函数
    return 0;
}
Copier après la connexion

Règles de déclaration

Voici les règles de déclaration des fonctions ami en C++ :🎜
  • La déclaration d'une fonction ami doit être en dehors de la classe.
  • Les fonctions amies peuvent être déclarées en tant que fonctions membres (avec résolveur de portée) ou fonctions globales (sans résolveur de portée).
  • Les objets d'une classe peuvent être transmis via des pointeurs ou des références.
🎜🎜Cas pratique🎜🎜🎜Considérons la classe MyClass suivante, qui possède une variable membre privée _data : 🎜
Data: 42
Copier après la connexion
🎜Nous pouvons définir un Fonction ami printInfo() pour accéder à _data : 🎜rrreee🎜Dans la fonction principale, nous pouvons instancier l'objet MyClass et appeler la fonction ami pour imprimer Données privées : 🎜rrreee🎜🎜Sortie : 🎜🎜rrreee

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