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++ 友元函数如何访问私有成员?的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:pansz,转转请注明出处:https://www.dingdanghao.com/article/352620.html
