Files
CPlusPlusThings/practical_exercises/10_day_practice/day4/友元函数/友元类.cpp
T
Light-City a4d828bb4c update
2020-04-06 00:57:02 +08:00

49 lines
807 B
C++

#include<iostream>
using namespace std;
/*
若一个类为另一个类的友元,则此类的所有成员都能访问对方类的私有成员。
声明语法:将友元类名在另一个类中使用friend修饰说明。
*/
/*
如果声明B类是A类的友元,B类的成员函数就可以访问A类的私有和保护数据,
但A类的成员函数却不能访问B类的私有、保护数据。
*/
class A{
friend class B;
public:
void Display(){
cout<<x<<endl;
}
private:
int x;
};
class B
{ public:
void Set(int i);
void Display();
private:
A a;
};
void B::Set(int i)
{
a.x=i;
}
void B::Display()
{
a.Display();
}
int main(int argc, char const *argv[])
{
B b;
b.Set(10);
b.Display();
system("pause");
return 0;
}
/*
如果声明B类是A类的友元,B类的成员函数就可以访问A类的私有和保护数据,但A类的成员函数却不能访问B类的私有、保护数据
*/