C 中友元函数访问私有成员的方法有两种:在类内声明友元函数。声明一个类作为友元类,该类中所有的成员函数都可以访问另一个类的私有成员。
C 友元函数访问私有成员的方法
友元函数是一种在类外部定义,但可以访问类私有成员的函数。有两种方法可以实现友元函数对私有成员的访问:
1. 声明友元函数
在类内声明友元函数,语法如下:
class ClassName { public: // 类成员... // 声明友元函数 friend void friend_function(); };
这样,声明的友元函数就可以访问该类的私有成员。
2. 声明友元类
声明一个类作为友元类,该类中所有的成员函数都可以访问另一个类的私有成员。语法如下:
class ClassName1 { public: // 类成员... // 声明友元类 friend class ClassName2; };
所有声明在 ClassName2
中的成员函数都可以访问 ClassName1
的私有成员。
实战案例
考虑以下 C 代码:
class Person { private: int age; string name; public: // 友元函数 friend void print_person_info(const Person& person); // 访问私有成员的友元函数 void print_info() const { cout << "Name: " << name << endl; cout << "Age: " << age << endl; } }; // 友元函数外部分类的定义 void print_person_info(const Person& person) { cout << "Name: " << person.name << endl; cout << "Age: " << person.age << endl; } int main() { Person person; person.name = "John"; person.age = 30; person.print_info(); print_person_info(person); return 0; }
在这个例子中,print_person_info
函数是一个友元函数,它可以访问 Person
类的私有成员。在 Person
类中,print_info
函数也访问私有成员,它使用了友元函数声明。
运行以上代码将输出:
Name: John Age: 30 Name: John Age: 30
以上是C++ 友元函数如何访问私有成员?的详细内容。更多信息请关注PHP中文网其他相关文章!