//友元类
#include<iostream>
using namespace std;
class A
{
public:
friend class B;
private:
int a;
};
class B
{
public:
void setB(int a)
{
Aobject.a = a;
}
void printfB()
{
cout <<"Aobject.a="<<Aobject.a << endl;
}
private:
A Aobject;
};
void main()
{
B b1;
A a1;
b1.setB(10);
b1.printfB();
system("pause");
}
//友元函数
#include<iostream>
using namespace std;
class test
{
public:
//友元函数是一个全局函数,但是可以访问类中的私有属性
//友元函数 声明的位置和public private没有关系
//友元函数的参数必须有一个指向该类的指针或引用,这样才能修改类中的私有成员变量
friend void printfA(test *t, int c);
test(int a, int b)
{
m_a = a;
m_b = b;
}
int getA()
{
return m_a;
}
private:
int m_a;
int m_b;
};
void printfA(test *t,int c)
{
t->m_a = 100;
}
void main()
{
test t1(1,2);
int c = 100;
printfA(&t1, c);
cout << "a="<<t1.getA()<< endl;
system("pause");
}