c++学习之异类之间的友元

#include

using namespace std;

//我们都知道一般地在一个类的private中定义的变量,是只能在该类的内部访问,不能对类外的对象或者其他类开放,
//当一个类需要访问另一个类的私有成员变量的时候,一种方法是通过该类中的成员函数间接返回类中的私有成员变量的值,如果该中中不提供这样的
//接口,那也是无法访问,c++提供一种友元机制,当一个类需要访问另一个类中的私有成员变量时可以将该类声明为他的友元类。友元类是可以访问到它内部的私有的
//成员变量

//Sample
//下例中将类B生命为类A的友元类,因此类B是可以访问到类A的私有成员变量
class A;
class B
{
public:
B()
{}
~B()
{}
friend class A;
void get();
};
class A
{
public:
A()
:a(0),b(0)
{}
A(int s,char q)
:a(s),b(q)
{}
~A()
{}
int c;
private:
int a;
char b;

};
void B::get()
{

}
int main(int argc, char *argv[])
{
A G(1,2);
B S;
S.get();
cout << “Hello World!” << endl;
return 0;
}
//c++三种基本的访问权限控制关键字解析:
//1.public:可以被类的对象直接访问到,但是不能在类外不基于任何依托直接修改其值,这本身就是不合理的,破坏了c++的封装性,但是友元为了提高代码的
//可重用性,使用友元类,破坏了c++的封装 提高了代码的可重用性
//2.private:不能被类的外部成员访问,包括类对象,只能在类内部的成员函数中操作或访问
//3.protected:在继承与派生中,父类中的protected成员可以被子类所访问,这些保护类的成员函数对其派生类是开放的

猜你喜欢

转载自blog.csdn.net/weixin_41218453/article/details/86522688